美文网首页
undefined 与 null 区别

undefined 与 null 区别

作者: 饥人谷_sunny | 来源:发表于2017-01-03 15:11 被阅读0次
    • undefined:只有一个值,也就是undefined。undefined意为未定义,即当使用var声明了变量但未进行赋值时,这个变量的返回值就是undefined。
      typeof undefined // 返回"undefined"

    undefined产生的原因有两种:
    (1)访问对象不存在的属性或方法
    (2)声明了变量但没有赋值

    返回undefined的场景:

    // 变量声明了,但没有赋值
    var i;
    i  // undefined
    
    // 调用函数时,应该提供的参数没有提供,该参数等于undefined
    function f(x) {
      return x;
    }
    f() // undefined
    
    // 对象没有赋值的属性
    var o = newObject();
    o.p // undefined
    
    // 函数没有返回值时,默认返回undefined
    function f() {}
    f() // undefined
    
    • null:表示一个变量中没有包含有效数据,可以将它当作对象的占位符(placeholder)。(placeholder)null在这里意为空值、空的意思,更确切的说,一个被赋值为null的变量没有保存有效的数值、字符串、布尔、数组或对象等,可以通过给一个变量赋值为null来清空变量中的内容。产生null的原因只有一个:即对一个变量显示的赋值为null。
      typeof null //返回 "object"
      使用null的场景

    用来初始化一个变量,这个变量可以赋值为一个对象。
    用来和一个已经初始化的变量比较,这个变量可以是也可以不是一个对象。
    当函数的参数期望是对象时,用作参数传入。
    当函数的返回值期望是对象时,用作返回值传出。

    用法:

    var person = null;
    
    function getPerson() {
       if(condition) {
          return new Person('Jon');
        }else {
            return null;
        }
    }
    
    

    另外下面一些场景不应当使用null:
    (1)不要使用null来检测是否传入了某个参数。
    (2)不要使用null来检测一个未初始化的变量。

    文章著作权归饥人谷_sunny和饥人谷所有,转载须说明来源

    相关文章

      网友评论

          本文标题:undefined 与 null 区别

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