值 null
特指对象的值未设置。它是 JavaScript 基本类型 之一,在布尔运算中被认为是falsy。
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
语法
null
描述
值 null
是一个字面量,不像 undefined
,它不是全局对象的一个属性。null
是表示缺少的标识,指示变量未指向任何对象。把 null
作为尚未创建的对象,也许更好理解。在 API 中,null
常在返回类型应是一个对象,但没有关联的值的地方使用。
// foo 不存在,它从来没有被定义过或者是初始化过:
foo;
"ReferenceError: foo is not defined"
// foo 现在已经是知存在的,但是它没有类型或者是值:
var foo = null;
foo;
null
null 与 undefined 的不同点:
当检测 null
或 undefined
时,注意相等(==)与全等(===)两个操作符的区别 ,前者会执行类型转换:
typeof null // "object" (因为一些以前的原因而不是'null')
typeof undefined // "undefined"
null === undefined // false
null == undefined // true
null === null // true
null == null // true
!null //true
isNaN(1 + null) // false
isNaN(1 + undefined) // true
规范
规范版本 | 规范状态 | 注解 |
---|---|---|
ECMAScript 1st Edition (ECMA-262) | Standard | Initial definition. |
ECMAScript 5.1 (ECMA-262) null value |
Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) null value |
Standard | |
ECMAScript (ECMA-262) null value |
Living Standard |
浏览器兼容性
BCD tables only load in the browser
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.