--- title: 'null' slug: Web/JavaScript/Reference/Global_Objects/null tags: - JavaScript - Literal - Primitive translation_of: Web/JavaScript/Reference/Global_Objects/null ---
{{jsSidebar("Objects")}}

值 null 特指对象的值未设置。它是 JavaScript {{Glossary("Primitive", "基本类型")}} 之一,在布尔运算中被认为是falsy

{{EmbedInteractiveExample("pages/js/globalprops-null.html")}}

语法

null

描述

null 是一个字面量,不像 {{jsxref("Global_Objects/undefined","undefined")}},它不是全局对象的一个属性。null 是表示缺少的标识,指示变量未指向任何对象。把 null 作为尚未创建的对象,也许更好理解。在 API 中,null 常在返回类型应是一个对象,但没有关联的值的地方使用。

// foo 不存在,它从来没有被定义过或者是初始化过:
foo;
"ReferenceError: foo is not defined"

// foo 现在已经是知存在的,但是它没有类型或者是值:
var foo = null;
foo;
null

null 与 undefined 的不同点:

当检测 nullundefined 时,注意相等(==)与全等(===)两个操作符的区别 ,前者会执行类型转换:

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

规范

规范版本 规范状态 注解
{{SpecName('ES1')}} {{Spec2('ES1')}} Initial definition.
{{SpecName('ES5.1', '#sec-4.3.11', 'null value')}} {{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-null-value', 'null value')}} {{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-null-value', 'null value')}} {{Spec2('ESDraft')}}

浏览器兼容性

{{Compat("javascript.builtins.null")}}

参见