javascript null与undefined区别

 

 

null

    这是一个对象,但是为空。因为是对象,所以 typeof null  返回 'object' 。

    null 是 JavaScript 保留关键字。

    null 参与数值运算时其值会自动转换为 0 ,因此,下列表达式计算后会得到正确的数值:

    表达式:123 + null    结果值:123

    表达式:123 * null    结果值:0


只有一个null,undefined 是由null派生处理的,因此undefined == null 

undefined 是声明了但是没有初始化的该变量, 

null表示尚未存在的对象 

 

undefined

  undefined是全局对象(window)的一个特殊属性,其值是未定义的。但 typeof undefined 返回 'undefined' 。

      虽然undefined是有特殊含义的,但它确实是一个属性,而且是全局对象(window)的属性。请看下面的代码:

    alert('undefined' in window);   //输出:true

  var anObj = {};

     alert('undefined' in anObj);    //输出:false

 

从中可以看出,undefined是window对象的一个属性,但却不是anObj对象的一个属性。


以下三种情况typeof 返回类型为undefined 

1. 当变量未初始化时 

2. 变量未定义时 

3. 函数无明确返回值时(函数没有返回值时返回的都是undefined) 

undefined 并不等同于未定义的值 

typeof 并不真正区分是否是未定义 

 

 

 

你可能感兴趣的:(JavaScript)