null

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

null 值特指未不存在任何对象值。它是 JavaScript 的原始值之一,且在布尔运算中被视为假值

尝试一下

语法

js
null

描述

null 被写作字面量:null。不像 undefinednull 不是全局对象的属性。相反,null 是表示缺少的标识,指示变量未指向任何对象。在 API 中,null 常在预期的值应是一个对象,但又没有关联的对象的地方使用。

js
// foo 不存在。它从未被定义或初始化:
foo; //ReferenceError: foo is not defined
js
// 已知 foo 现在已经存在,但它没有类型和值:
const foo = null;
foo; //null

示例

nullundefined 的不同点

当检查值是否为 nullundefined 时,请注意相等(==)与全等(===)运算符的区别,前者会执行类型转换:

js
typeof null; // "object"(因历史原因而不是 "null")
typeof undefined; // "undefined"
null === undefined; // false
null == undefined; // true
null === null; // true
null == null; // true
!null; // true
Number.isNaN(1 + null); // false
Number.isNaN(1 + undefined); // true

规范

Specification
ECMAScript Language Specification
# sec-null-value

浏览器兼容性

BCD tables only load in the browser

参见