美文网首页
null与undefined的区别

null与undefined的区别

作者: 张德瘦嬢嬢 | 来源:发表于2020-07-03 09:53 被阅读0次

    最初设计

    JavaScript的最初版本是这样区分的:

    • null是一个表示"无"的对象,转为数值时为0;
    • undefined是一个表示"无"的原始值,转为数值时为NaN。

    目前的用法

    但是,上面这样的区分,在实践中很快就被证明不可行。目前,null和undefined基本是同义的,只有一些细微的差别。

    null表示"没有对象",即该处不应该有值。典型用法是:

    (1) 作为函数的参数,表示该函数的参数不是对象。

    (2) 作为对象原型链的终点。

    Object.getPrototypeOf(Object.prototype) // null

    undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。典型用法是:

    (1)变量被声明了,但没有赋值时,就等于undefined。

    (2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。

    (3)对象没有赋值的属性,该属性的值为undefined。

    (4)函数没有返回值时,默认返回undefined。

    var i;
    i // undefined
    
    function f(x){console.log(x)}
    f() // undefined
    
    var  o = new Object();
    o.p // undefined
    
    var x = f();
    x // undefined
    

    控制台见分晓

    1.类型不一样:

    console.log(typeof undefined);//undefined

    console.log(typeof null);//object

    image.png
    2.转化为值时不一样:undefined为NaN ,null为0

    console.log(Number(undefined));//NaN

    console.log(Number(10+undefined));//NaN

    console.log(Number(null));//0

    console.log(Number(10+null));//10


    image.png
    3.==和===

    undefined===null;//false

    undefined==null;//true


    image.png

    相关文章

      网友评论

          本文标题:null与undefined的区别

          本文链接:https://www.haomeiwen.com/subject/evbjqktx.html