JavaScript null 值

JavaScript null 语法

null 是 JavaScript 中的一个基本数据类型,它表示一个有意为之的 “空值” 。

语法:

const 变量名 = null;

说明:

与 undefined 不同,undefined 表示一个变量未被赋值,而 null 则是主动给变量赋一个空值。

注意: null 值的类型为 object,这是一个 JavaScript 历史遗留的一个 bug。typeof null 会返回 "object",而不是 "null"。因此在实际开发中,如果想要判断一个值是否为 null,最可靠的方法是使用 “===(严格相等)” 运算符。

JavaScript null 摘要

属于 JavaScript 数据类型
使用频率
官方文档 查看
MDN 查看

JavaScript null 示例

接下来,我们通过几个简单的例子来讲解一下 JavaScript null 是如何使用的。

示例 1:null 基本用法

const user = null;

console.log(user);
console.log(typeof user);
console.log(user === null);

运行结果如下。

null
object
true

分析:

在这个例子中,我们将 user 变量的值显式声明为 null。尽管 typeof 运算符返回了 "object",但使用 “===” 是可以正确判断出该变量的值就是 null 的。

示例 2:清空变量的值

let user = { "name": "Jack" };
console.log(user);

// 假设用户退出登录,我们清空 user 变量
user = null;
console.log(user);

运行结果如下。

{ name: 'Jack' }
null

分析:

user 变量在开始时引用了一个对象。当我们将 user 重新赋值为 null 时,它就不再引用那个对象了,这点在内存管理方面非常有用。当我们不再需要某个对象时,将其引用设置为 null,这样可以让垃圾回收机制释放其所占用的内存。

null 与 undefined 的区别

与其他语言不一样,JavaScript 使用了两个值来表示 “空”:null 是一个表示 “无” 的基本类型(尽管 typeof 会返回 "object"),而 undefined 也是一个表示 “无” 的基本类型。它们之间的区别如下。

  • undefined 代表变量已被声明,但尚未被赋值。而 null 代表内存是存在该变量的,只是暂时设置为空而已。
  • undefined 转为数值是 NaN,而 null 转为数值是 0。
  • 使用 typeof 判断 undefined,返回的是 undefined(它属于基本类型之一);而使用 typeof 判断 null,返回的是 object。

对于 undefined 和 null 的使用,我们需要清楚以下 2 点。

  • 想要判断某个变量有值,应该使用 undefined,比如 if(xxx===undefined){}。
  • 想要设置一个初始的空值(如定时器),可以使用 null,比如 let timer=null;。

示例 3:null vs undefined

console.log(null === undefined);
console.log(null == undefined);

console.log(typeof null);
console.log(typeof undefined);

运行结果如下。

false
true
object
undefined

分析:

typeof null 返回 "object",这是 JavaScript 语言的一个历史遗留 bug,小伙伴们不用纠结太多。因此在实际开发中,我们应该使用 “===(严格相等)” 来区分 null 和 undefined。

实际上,null 和 undefined 虽然都可以表示 “空值”,但它们在类型和语义上是不同的。

上一篇: undefined

下一篇: NaN

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号