您的位置:首页 > 其它

null和undefined的区别

2016-08-31 00:00 127 查看
null和undefined的区别
1、undefined类型

  undefined类型只有一个值,即特殊的undefined。在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined,例如:
var demo;
alert(demo == undefined);//true
这个例子只声明了变量,但未进行初始化。它的结果和下面的例子是等价的。
var demo = undefined;
alert(demo == undefined);//true
注意:字面值undefined主要用于比较
但是,包含undefined和尚未定义的变量还是不一样的。比如:
alert(age); //产生错误age is not defined
下面我们用typeof操作符来进行下面的操作:
var test;
console.log(typeof test);//undefined
console.log(typeof age);//undefined
结果表明,对未初始化和未声明的变量执行typeof操作都会返回undefined值。那么可以推导出,当typeof操作符返回undefined时,那么说明被检测的变量还没被声明。

扩展:undefined的类型转换
console.log(Boolean(undefined)); //false
console.log(Number(undefined)); //NaN
console.log(String(undefined)); //undefined

undefined的类型鉴别
console.log(typeof undefined); //undefined
console.log(typeof 'undefined'); //string

注意:undefined不是关键字

2、null类型
null类型是第二个只有一个值的数据类型。从逻辑角度看,null值表示一个空的指针对象(这个的具体了解见对象的原型),而这也正式使用typeof操作符检测null时,会返回object的原因。
var a= null;
console.log(typeof a);//object
到这里,我们该注意:null是空的对象指针,而[]是空数组,{}是空对象,三者不同。
扩展:null的类型转换
  console.log(Boolean(null)); //false
  console.log(Number(null)); //0
  console.log(String(null)); //null
  null的类型鉴别
  console.log(typeof null); //object
  console.log(typeof 'null'); //string
  由于null是null是空的对象指针,我们仅仅用typeof操作符还不行
  console.log(null === null);//true,判断一个值是否为null的最好方法是和null进行恒等比较
   console.log(undefined === null);//false
   console.log('null' === null);//false
   console.log(undefined === undefined);//true
   console.log('undefined' === undefined);//false

  注意:null是关键字

3、理解

  null是一个表示“无”的对象,转为数值时为0;undefined表示“无”的原始值,转化为数值时为NaN。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  null undefined