1.ECMAScript数据类型

  5种简单数据类型,分别是:

    Undefined

    Null

    Boolean

    Number

    String

  1种复杂数据类型:

    Object

(1)typeof操作符——检测给定变量的数据类型

  “undefined”——未定义

  “boolean”——布尔值

  “string”——字符串

  “number”——数值

  “object”——对象或是null

  “function”——函数

eg:

1  <script type="text/javascript">
2     var m="hello!"
3     alert(typeof(m));
4     alert(typeof m);
5     alert(typeof 93);
6     </script>

出现3个提示框,分别是:

注意:(1)以上例子说明,typeof操作符的操作数可以是变量,也可以是数值字面量。

   typeof是一个操作符,而不是一个函数,所以例子中的圆括号可以使用,但不是必需的。

     (2)调用 typeof null返回的是 “Object” ,因为特殊值null被认为是空的对象引用。

2.Undefined类型

  undefined类型只有一个值,即特殊的undefined。使用var声明变量但没有进行初始化赋值时,这个变量的值就是undefined。

  eg:

  

1 var message;
2 alert(message);

  结果图:

  上面的例子只是声明了变量message,但没有对其进行初始化。

注意:

  (1)未经初始化的变量,其默认值为undefined,与没有进行定义的变量是不一样的。

eg:

1 var message;
2     alert(message);
3     alert(age);

第三行会出现错误:

  

  运行以上代码,第一个警告框会显示变量message的值,即undefined。第二个警告框由于传递给alert()函数的是没有声明的变量age,则会导致一个错误。

  对没有声明的变量,只能执行一项操作,即使用typeof操作符检测其数据类型(对没有声明的变量调用delete不会导致错误,但是这样做没有实际意义,而且在严格模式下会导致错误。)

  (2)使用alert()函数,输出的变量的值,已经定义声明,但是没有进行初始化的变量的值为“undefined”,使用typeof操作符输出的变量的数据类型,已经定义声明,但是没有进行初始化的变量的数据类型也是“undefined”。

  (3)对没有定义的变量使用typeof操作符同样也是返回undefined。

  eg:

1 var message;
2     alert(typeof message);
3     alert(typeof age);

上面的代码会出现两个警告框,都是显示“undefined”。

3.Null类型

  null类型的数据只有一个值,就是null,null值表示一个空对象的指针,当用typeof操作符检测null时,会返回“object”。

eg:

1 var car=null;
2     alert(typeof(car));

  如果定义的变量是准备来保存对象的,最好将该变量初始化为null而是不其他的值。实际上undefined值是派生自null值的,因此ECMA-262规定它们的相等性测试要返回true。

alert(null==undefined);

    

注意:

  尽管null和undefined有这样的关系,但是它们的用途是完全不同的。我们知道,在一般情况下,都没有必要把一个变量的值显式地设置为undefined,但是null却不同,只要意在保存对象的变量还有真正保存对象,就应该明确地让该变量保存为null值。

  这样做不仅可以体现null作为空对象指针的惯例,也有助于进一步区分null和undefined。

4.Boolean类型

  (1)该类型的值:true和false。(这两个值和数字值不是一回事,因此true不一定等于1,false不一定等于0。)

  注意:Boolean类型的字面值是区分大小写的。

  (2)ECMAScript中所有类型的值都有与Boolean值等价的值。要将一个值转化为其对应的Boolean值,可以转换函数Boolean(),至于放回的值是true还是false,取决于要转换至的数据类型及其实际值。

注:各种数据类型及其对应的转换规则,详见高程P26.

5.Number类型

  (1)八进制字面值的第一位必须是0,当数字序列超过0~7时,前导0会被忽略,后面的数字将当做十进制数值解析。

    八进制子在严格模式下无效的,会导致Javascript引擎抛出错误。

  (2)在进行算术运算时,八进制和十六进制都会被转换成十进制数值。

  (3)浮点数:该数值中必须包含一个小数点,并且小数点后面必须至少有一位数字。

    注意:由于保存浮点数值需要的内存空间是保存整数的两倍,因此ECMAScript会不失时机地将浮点数转换为整数来保存。显然,如果小数点后没有任何数字,这个数值可以作为整数来保存,如果浮点数值本身就是一个整数(eg:1.0),那么该值也会被转换为整数。

  (4)默认情况下,ECMAScript会将小数点后面带有6个零以上的浮点数值转换为以e表示法表示的数值。

  (5)浮点数的最高精度为17位小数,但是在进行计算时其精度远不如整数。

    eg:0.1+0.2的结果不是等于0.3,而是等于0.30000000000000004.

用代码测试情况如下:

var a=0.1,b=0.2;
    if(a+b==0.30000000000000004){
        alert("You got 0.3");
    }

结果:

当代码为:

var a=0.1,b=0.2;
    if(a+b==0.3){
        alert("You got 0.3");
    }

时,测试无法通过。

因此,一般不要测试某个特定的浮点数值。

  

  

转载于:https://www.cnblogs.com/LinSL/p/6134892.html

JS_高程3.基本概念(2)相关推荐

  1. 《js高程》 基本概念 上

    基本概念 上 语法 数据类型 流程控制 函数 语法 区分大小写 标识符 字母.下划线.美元开头 其它字符可以是字母.下划线.美元或数字 驼峰式 注释 //单行注释 /*/多行 严格模式 "u ...

  2. JS_高程6.面向对象的程序设计(2)创建对象_1

    一.创建对象的常见方法 (1)Object构造函数创建单个对象,早期的JavaScript开发人员经常使用该模式创建新对象. 1 var person=new Object(); 2 person.n ...

  3. JS_高程7.函数表达式(1)

    定义函数的两种常见的方法: 1 . 函数声明 2. 函数表达式 # 差异 (1)函数声明 ,具有函数声明提升的特征. (2)函数声明的函数的name属性为函数的名称:使用函数表达式定义的函数在ES5中 ...

  4. 调节e18-d80nk的测量距离_水准测量基础知识

    一. 高程测量的概念 测量地面上各点高程的工作 , 称为高程测量.高程测量根据所使用的仪器和施测方法的不同,分为: 1.水准测量 2.三角高程测量 3.气压高程测量 4.GPS 测量 二.水准测量原理 ...

  5. ArcGIS DEM数字高程模型数据的生成

    1.基本分析方法 GIS做地形分析的基本步骤其实是非常简单的,网上也有非常多的教程进行阐述,其实大家按这个步骤也基本能做出来,但问题就出现在每个人所使用的基础数据都多多少少有不同的问题,因此在操作过程 ...

  6. ArcGIS干货教程:DEM数字高程模型数据的生成

    1. 概述 现在ArcGIS在规划行业的使用逐渐流行起来,多规合一.地理设计.甚至还有大数据.编程设计等等各种高大上无不与ArcGIS多少有点关系,然而大多数行业小伙伴作为一个普通的规划师,只是想用A ...

  7. 10显示不支持导入dwg文件_Global Mapper中80坐标系高程DEM与kml文件叠加实例

    概述 在GIS行业中,有很多经常用到的软件,比如CAD.ArcGIS.Erdas和ENVI等大型专业软件,也会常用到像Global Mapper这样的"迷你"软件,这里,我们以80 ...

  8. ArcGIS API for JavaScript 入门教程[5] 再讲数据——Map类之底图与高程

    [回顾]前4篇交代了JsAPI的背景.资源如何获取,简介了数据与视图分离的概念与实现,剖析了页面的大骨架. 这篇开始,讲Map类. 转载注明出处,博客园/CSDN/B站/知乎:秋意正寒 目录:http ...

  9. javascript高程3 学习笔记(二)

    ECMAScript function的理解 ECMAScript 函数与其他语言函数最大的不同在于,其不介意传入多少参数以及参数的类型 比如函数的形参有两个,但是调用函数传入的参数可以写一个,三个或 ...

最新文章

  1. ADO.NET Data Services Framework 基础概述
  2. 使用jquery+json实现ajax的方法
  3. 门限的限意思是什么_门限是什么意思_门限英文翻译
  4. Java基础 -- 复用类(组合和继承)
  5. html:(16):a标签
  6. python如何全网爬取_如何通过Python爬取互联网
  7. UWP锁、解屏后无法响应操作
  8. gcd前缀和-蒜头君的数轴
  9. qt结合arcgis for qt开发(鼠标点击地图获取坐标,坐标转换)
  10. dvwa-sql盲注
  11. 这个1500个+Javascript特效代码,瞬间提升你的开发效率
  12. css垂直居中怎么设?文字上下居中和图片垂直居中
  13. DDD原著 -- 第一章 知识消化
  14. vue集成阿里云Aliplayer直播点播组件
  15. Android系统镜像编译、烧录及调试
  16. aws cloudfront
  17. 批处理---findstr命令详解
  18. python 统计文件夹下的文件夹/某类型文件的数目
  19. 腾讯拿下基金销售牌照:微信、蚂蚁、东方财富上演“三国杀”
  20. 动物系列3D虚拟解剖软件助力畜牧兽医专业学习

热门文章

  1. HDOJ 1160 FatMouse's Speed
  2. 06-01 搭建持续集成平台 Jenkins
  3. php抓取网页css,php 抓取的页面如何处理可以只保留DOM结构,去掉CSS和JS?
  4. 大学生学java要去培训机构吗?
  5. 零基础小白如何入门前端?以下这几点一定是你需要的
  6. 7-1 输入学生姓名,输出问候信息。
  7. 屏蔽关闭百度搜索风云热点的方法
  8. W - C/C++练习7---求某个范围内的所有素数
  9. find5 android 4.3,OPPO Find 7的手机系统是什么?能升级安卓4.3吗?
  10. c语言程序如何实现分组,c程序-实现随机分组.ppt