undefined和null的区分

JavaScript言语有两个示意”无”的值:undefined和null。

var a = undefined;
var a = null;

a变量分别被赋值为undefined和null,赋值写法相似;而且在用if语句做推断时都邑返回false;以至undefined==null也会返回true。
然则二者照样有区分的:
undefined是一个undefined范例,而null是一个object范例。
null示意”没有对象”,即该处不该该有值。典范用法是:

  1. 作为函数的参数,示意该函数的参数不是对象。

  2. 作为对象原型链的尽头。

       Object.getPrototypeOf(Object.prototype)    // null
    

undefined示意”缺乏值”,就是此处应当有一个值,然则还没有定义。典范用法是:

  1. 变量被声清楚明了,但没有赋值时,就即是undefined。

    var i;
    i;    // undefined
  2. 挪用函数时,应当供应的参数没有供应,该参数即是undefined。

    function f(x){
       console.log(x);
    }
    f();    // undefined
  3. 对象没有赋值的属性,该属性的值为undefined。

    var o = new Object();

    o.p;    // undefined 
    
  4. 函数没有返回值时,默许返回undefined。 var x = f();

    x;    // undefined
    原文作者:巅峰大词典
    原文地址: https://segmentfault.com/a/1190000007487850
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞