null和undefined的异同

  • 相同点:  
    1. 都表示值得空缺,二者往往可以互换,用“==”相等运算符判断两个是相等的,要用“===”判断。
    2. 在希望值是布尔类型的地方,他们的值都是假值,和“false”类似。
    3. 都不包含属性和方法。
    4. 使用"."或"[]"来存取这两个值的成员或方法都会产生一个类型错误。
    5. undefined表示系统级,出乎意料的或类似错误的值的空缺,null是表示程序级的,正常的或意料之中的值得空缺。null更适合赋值给变量或属性或作为参数传入函数。
  • 不同点:
    1. null是js关键字,表示一个特殊值,常用来描述“空值”,undefined不是关键字,表示更深层次的“空值”,是一种变量的取值,表示变量没有初始化。
    2. 对null执行typeOf预算,返回字符串“object”,所以说null是一个特殊的对象值,含义是“非对象”。对undefined执行typeOf预算,返回“undefined”,undefined是全局变量,它的值就是“未定义”。
    3. null表示数字、字符串和对象“无值”,要查询对象的属性,或者数组元素的值返回undefined时表示这个属性或者元素不存在,没有返回值则返回undefined,引用没有提供实参的函数形参的值只会得到undefined。

posted on 2015-08-17 15:01  DFrain  阅读(487)  评论(0编辑  收藏  举报

导航