JS中null与undefined的区别

 

1. 相同点

  if 判断语句中,二者都会被转换为falsehtml

 

2. 不一样点

  • Number转换的值不一样,Number(null)输出为0, Number(undefined)输出为NaN函数

  • null表示一个值被定义了,可是这个值是空值
    • 做为函数的参数,表示函数的参数不是对象post

    • 做为对象原型链的终点 (Object.getPrototypeOf(Object.prototype))spa

    • 定义一个值为null是合理的,但定义为undefined不合理(var name = null)      
  • undefined表示缺乏值,即此处应该有值,可是尚未定义
    • 变量被声明了尚未赋值,就为undefinedprototype

    • 调用函数时应该提供的参数尚未提供,该参数就等于undefinedcode

    • 对象没有赋值的属性,该属性的值就等于undefinedhtm

    • 函数没有返回值,默认返回undefined对象

  • 示例     blog

复制代码
var i;
i // undefined

function f(x){console.log(x)}
f() // undefined

var  o = new Object();
o.p // undefined

var x = f();
x // undefined
复制代码

详情参考:http://www.ruanyifeng.com/blog/2014/03/undefined-vs-null.html原型链

相关文章
相关标签/搜索