2. Null

1. 通用知识

在计算机编程中,null 指针(或引用)是一个保留值,用来表示指针(或引用)没有指向一个有效对象。程序通常用它来表示某些特定条件,比如未知长度列表的结尾、某些无法执行的操作。

此外,一些编程语言还有个特性是可空类型(nullable type),它允许将值设置为特殊值 NULL 而不是其它常见的数据类型。在静态类型语言中,可空类型是可选类型(option type 或 maybe type),而动态类型语言往往是提供一个单独的 null 值。

NULL 也经常用来表示缺失值或无效值,比如没有成功返回的函数、数据库里的缺失字段(如SQL里的 NULL)。

2. 原始值

Null 类型只有一个值,就是 null。null 值表示对象值的有意缺失。

3. 注意事项

3.1 typeof null

在 JavaScript 中,null 是原始值之一,因为它的行为看起来是”原始的“。

但是,在某些情况下,null 值并不像它看起来的那样”原始“,因为所有的对象都继承自 null 值,所以它的 typeof 运算符返回的是 object。如下:

typeof null; // "object"

typeof null 是 "object" 而不是 "null",这是一个历史遗留问题。

3.2 null 关键字

与 undefined 不同,null 不是全局对象的属性标识符,而且它是 JavaScript 的关键字,所以可以放心地使用 null 关键字来获取 null 值。

if (foo === null) {}
let bar = null;

当给 null 赋值的时候,会报错。如下:

null = 'hello';  // SyntaxError: Invalid left-hand side in assignment

此外,null 和 undefined 还有如下不同:

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

1 + null;        // 1
1 + undefined;   // NaN
isNaN(1 + null);       // false
isNaN(1 + undefined);  // true

4. 总结

这部分介绍了 Null 类型和它对应的 null 值,null 是 JavaScript 的关键字,所以可以放心地使用。值得注意的是,typeof null 是返回 "object" 而不是 "null"。

5. 主要参考

Last updated