📜  JavaScript 中的未定义与空值

📅  最后修改于: 2021-09-11 03:39:41             🧑  作者: Mango

null 和 undefined 之间有几个区别,有时理解为相同。

  1. 定义:

    • Null:它是故意缺少值。它是 JavaScript 的原始值之一。

    • 未定义:表示编译器中不存在该值。它是全局对象。

  2. 类型:

    空:对象

    未定义:未定义

  3. 您可以参阅“==”与“===”文章。

    null == undefined // true
     null === undefined // false
    

    这意味着null等于未定义但不相同。

  4. 当我们将变量定义为undefined 时,我们试图传达该变量不存在。
    当我们将变量定义为null 时,我们试图传达该变量为空。

  5. 使用 isNaN() 进行区分:
    您可以参考 NaN 文章以获得更好的效果
    理解。

    isNaN(2 +  null)      // false
    isNaN(2 + undefined) // true
    
  6. 例子:

    • 空值:

      null ? console.log("true") : console.log("false") // false
      

      Null也称为false

    • 不明确的:

      当变量没有赋值时

      var temp;
      if(temp === undefined)
      console.log("true");
      else
      console.log("false");
      

      输出:

      true

      访问不存在的值

      var temp=['a','b','c'];
      if(temp[3] === undefined)
      console.log("true");
      else
      console.log("false");
      

      输出:

      true