主页 > 前端 > javascript >
来源:未知 时间:2017-02-27 09:59 作者:xxadmin 阅读:次
[导读] 大致介绍 ECMAScript中有5中简单的数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number、String。 Undefined Undefined时全局变量的一个属性,它只有一个值即:undefined。当使用var声明...
大致介绍 ECMAScript中有5中简单的数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number、String。 Undefined Undefined时全局变量的一个属性,它只有一个值即:undefined。当使用var声明变量但未对其初始化时,这个变量的值就是undefined。 var test; console.log(test); //undefined 对于未声明过的变量只能进行一种操作,即typeof检测其数据类型 //var a console.log(typeof a); //undefined undefined通常出现的场景: 1、已经声明但未赋值的变量 2、typeof检测未声明的变量的数据类型 3、没有返回值的函数的执行结果 4、函数没有传入参数 5、void(expression) //1、 var test; console.log(test); //undefined //2、 //var a console.log(typeof a); //undefined //3、 function f(){} console.log(f()); //undefined //4、 function f(x){ return x; } console.log(f()); //undefined //5、 console.log(void(0)); //undefined 严格相等和undefined 可以使用严格相等和不相等来检测一个变量是否拥有值 var x ; if(x === undefined){ console.log(1); }else{ console.log(2); } 注意:这里要用严格相等,因为 null == undefined void操作符和undefined 可以用void操作符来代替undefined var x ; if(x === void(0)){ console.log(1); }else{ console.log(2); } Null Null类型是第二个只有一个值的数据类型,这个特殊的值是null。从逻辑的角度看,null值表示一个空对象的指针。null常被放在期望一个对象,但不引用任何对象的参数位置。
注意:
产生这样的原因就如前面所说,null值表示一个空对象的指针,用typeof检测数据类型,肯定就是object 从最底层讲不同的对象在底层都表示为二进制,在javascript中二进制前三位都为0会被判断为object类型,null的二进制表示是全0,所以执行typeof时返回'object' null和undefined null和undefined时不同的,但是他们都表示空值,null表示“空值”,undefined表示“未定义”。 typeof null // object typeof undefined // undefined null === undefined // false null == undefined // true null === null // true null == null // true !null //true isNaN(1 + null) // false isNaN(1 + undefined) // true Boolean Boolean类型是ECMAScript中使用最多的一种类型,该类型只有两个字面值:true和false 注意:Boolean类型的字面值true和false是区分大小写的 虽然Boolean类型的字面值只有两个,但是ECMAScript中所有的类型的值都有与这两个Boolean值等价的值。要将一个值转换为对应的Boolean值,可以调用转型函数Boolean() var message = 'hello world'; var messageBoolean = Boolean(message); console.log(messageBoolean); //true 转换表:
|
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com