JavaScript 空和未定义

示例

null和之间的区别undefined

null并undefined分享抽象平等==而不是严格平等===,

null == undefined   // 真正

null === undefined  // 假

它们代表略有不同的事物:

  • undefined表示缺少值,例如在创建标识符/对象属性之前,或者在创建标识符/函数参数与首次设置标识符(如果有)之间的时间段内。

  • null表示故意缺少已经创建的标识符或属性的值

它们是不同类型的语法:

  • undefined是全局对象属性,通常在全局范围内不可变。这意味着您可以在全局命名空间之外定义标识符的任何地方都可以undefined从该范围中隐藏(尽管仍然可以 undefined)

  • null是字面意思的单词,因此它的含义是永不改变的,试图这样做将会抛出Error

null和之间的相似之处undefined

null而且undefined都是虚假的。

if (null) console.log("won't be logged");

if (undefined) console.log("won't be logged");

无论是null或undefined等于false(见这个问题)。

false == undefined   // 假

false == null        // 假

false === undefined  // 假

false === null       // 假

使用 undefined

  • 如果当前范围不可信,请使用评估为undefined的值,例如void 0;。

  • 如果undefined被另一个值遮蔽,则与遮蔽Array或一样坏Number。

  • 避免将设置为undefined。如果要从Object删除属性,请改为。 foodelete foo.bar;

  • 存在检测标识foo对undefined 可能抛出一个引用错误,使用typeof foo针对"undefined"代替。

以上是 JavaScript 空和未定义 的全部内容, 来源链接: utcz.com/z/315803.html

回到顶部