《JavaScript高级程序设计》阅读笔记(二):ECMAScript中的原始类型

简介:

2.6 原始类型

  ECMAScript有5种原始类型(primitive type),即Undefined、Null、Boolean、Number和String。ECMAScript提供了typeof来判断值的类型。

1、typeof运算符:

1 var sTemp="test string";
2 alert(typeof sTemp);//outpus "string"
3 alert(typeof 95);//outpus "number"

  typeof运算符返回值只有5种,分别为:如果变量是Undefined型返回"undefined",如果变量是Boolean型返回"boolean",如果变量是Number型返回"number",如果变量是String型返回"string",如果变量是一种引用类型或Null类型返回"object"。

2、Undefined类型

  Undefined类型只有一个值,即undefined。当声明的变量未初始化和函数无明确的返回值时该变量的默认值和函数的返回值都是undefined。需要注意的是值undefined并不同于未定义的值,但typeof不区分这两种值。参考下面的代码:

 1 var oTemp;
2 alert(typeof oTemp); //outpus "undefined"
3 alert(typeof otemp2); //outpus "undefined"
4
5 alert(oTemp==undefined); //outpus "true"
6 alert(oTemp2==undefined); //causes error
7
8 function testFunc(){
9 //
10 }
11 alert(testFunc() == undefined); //outpus "true"

3、Null类型

  Null也是只有一个值的类型,它只有一个专用值null。值undefined实际不是从值null派生来的,因此ECMAScript把它们定义为相等。

1 alert(null == undefined); //outpus "true"

  尽管这两个值相等,但它们的含义不同。undefined是声明了变量但未对其初始化时的值,null则用于表示尚未存在的对象。

4、Boolean类型

  Boolean有两个值true和false

5、Number类型

  Number可以表示32位整数,还可以表示64位浮点数,不同进制间的表示:

var iNum=55;// 10进制
var iNum=070;// 8进制
var iNum=oxAB;//16进制
var fNum=3.125e7;//科学计数法表示浮点数

  几个特殊值也被定义为Number类型,前两个是Number.MAX_VALUE和Number.MIN_VALUE,它们定义了Number值集合的外边界。所有ECMAScript数都必须在这两个值之间,不过计算生成的数值结果可以不落在这两个数之间。

  当计算生成的数大于Number.MAX_VALUE时,它将被赋予值Number.POSITIVE_INFINITY,意味着不再有数字值。同样,生成的数值小于Number.MIN_VALUE的计算也会被赋予值Number.NEGATIVE_INFINITY,也意味着不再有数字值。如果计算返回的结果是无穷大,那么生成的结果不能再用于其他计算。

  事实上,有专门的值表示无穷大,即Infinity。Number.POSITIVE_INFINITY的值为Infinity,Number.NEGATIVE_INFINITY的值为-Infinity。

  可以对任何数调用isFinit()方法来判断是不是无穷大。例:

var iResult = iNum*some_really_large_number;
if(isFinit(iResult)){
alert("Number is finite");
}
else{
alert("Number is infinite");
}

  还有一个特殊值是NaN,表示非数(Not a Number)。NaN一般为类型转换失败时的值,NaN不能用于算术计算,NaN的另一个奇特之处在于它与自身并不相等,因此推荐使用isNaN(),如:

1 alert(NaN == NaN); //outpus "false"
2 alert(isNaN("blue")); //outpus "true"
3 alert(isNaN("123")); //outpus "false"
4 alert(isNaN(123)); //outpus "false"

6、String类型

  String是唯一没有固定大小的原始类型。ECMAScript的字符字面量:

  字面量        含义

  \n             换行

  \t             制表符

  \b           空格

  \r          回车

  \f          换页符

  \\          反斜杠

  \'          单引号

  \"          双引号

  \0nnn         八进制代码nnn表示的字符

  \xnn         16进制代码nn表示的字符

  \unnnn         16进制的代码nnnn表不的Unicode字符



本文转自Artwl博客园博客,原文链接:http://www.cnblogs.com/artwl/,如需转载请自行联系原作者

相关文章
|
26天前
|
JavaScript 前端开发
JavaScript中的布尔类型与数字类型详解
JavaScript中的布尔类型与数字类型详解
16 0
|
12天前
|
JavaScript 前端开发 程序员
《JavaScript权威指南第7版》中文PDF+英文PDF+源代码 +JavaScript权威指南(第6版)(附源码)PDF下载阅读分享推荐
JavaScript是Web标准语言,广泛应用于各类浏览器,造就了其最广泛部署的地位。Node.js的兴起扩展了JavaScript的使用场景,使其成为开发者首选语言。无论新手还是经验丰富的程序员,都能受益于学习JavaScript。[《JavaScript权威指南第7版》资源链接](https://zhangfeidezhu.com/?p=224)
27 5
《JavaScript权威指南第7版》中文PDF+英文PDF+源代码 +JavaScript权威指南(第6版)(附源码)PDF下载阅读分享推荐
|
16天前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的多功能智能手机阅读APP附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的多功能智能手机阅读APP附带文章源码部署视频讲解等
20 1
|
16天前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的儿童阅读系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的儿童阅读系统附带文章源码部署视频讲解等
10 1
|
27天前
|
JavaScript 前端开发 编译器
ECMAScript与JavaScript:一场语言的邂逅
ECMAScript与JavaScript:一场语言的邂逅
13 3
|
27天前
|
JavaScript 前端开发
JS的静态类型检测,有内味儿了
JS的静态类型检测,有内味儿了
|
27天前
|
JavaScript vr&ar 数据库
技术笔记:Js获取当前日期时间及其它操作
技术笔记:Js获取当前日期时间及其它操作
17 1
|
1月前
|
存储 JavaScript 前端开发
JavaScript中的对象是数据结构,存储键值对,键为字符串,值可为任意类型,包括函数(作为方法)
【6月更文挑战第25天】JavaScript中的对象是数据结构,存储键值对,键为字符串,值可为任意类型,包括函数(作为方法)。
24 2
|
1月前
|
JavaScript 前端开发 API
ECMAScript vs JavaScript: 理解两者间的联系与区别
ECMAScript vs JavaScript: 理解两者间的联系与区别
|
17天前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的小说阅读平台附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的小说阅读平台附带文章源码部署视频讲解等
14 0