JavaScript Nullable——如何在 JS 中检查 Null

本文探讨了JavaScript中null和undefined的区别,通过示例展示了如何使用typeof、相等运算符和Object.is()来检查这两种值。null是有意的空值,typeof返回'object',而undefined表示变量未初始化,typeof返回'undefined'。null与undefined在双等号比较时为真,但在严格相等比较时为假。了解这些差异对于JavaScript开发至关重要。
摘要由CSDN通过智能技术生成

有时你必须检查以确保什么都不是……什么都没有。😲❗❓

在 JavaScript 中,null是一种原始类型,有意包含 null 值。Undefined是一种原始类型,表示您在没有初始化值的情况下声明的变量。

所以, null 什么都不是, undefined 只是缺少一些东西。🤗
不是很有帮助,我知道。让我们深入探讨。

如何定义空值和未定义值
一个例子会有所帮助。下面我们声明两个变量。让我们保持简单并使用null和undefined比较结果,因为它们有时会因为相似性而混淆。

let leviticus = null;
// leviticus is null

let dune;
// dune is undefined
声明两个变量:一个为空,一个为未定义。
leviticus有意没有对象值 ( null )。虽然dune已声明,但它无意中遗漏了一个值(未定义)。

如何检查空值typeof()
您可以使用 JavaScript 中的运算符检查 null typeof()。

console.log(typeof(leviticus))
// object

console.log(typeof(dune))
// undefined
typeof() 在空变量上调用时将返回“object”
奇怪的是,如果您使用 进行检查typeof(),则会返回一个空变量object。这是因为 JavaScript 中的一个历史错误。

如何使用相等运算符检查空值
另一个好奇心是,当您使用双等号 松散地检查相等性时==,null将undefined返回true。

console.log(leviticus == dune)
// true

console.log(leviticus === dune)
// false

console.log(leviticus == null)
// true (but not as good a habit to use as strict equality shown in next example)
但是,当您使用三等号 严格检查相等性时===,将返回 null 和 undefined false。

这是因为 null 和 undefined 在 JavaScript 中都是假的。falseFalsy 表示在布尔 (true或) 上下文中遇到值时被考虑false。

JavaScript 使用强制转换将值从一种类型强制转换为另一种类型,以便能够在布尔上下文中使用它们。

但是通过严格检查相等性,您可以看到它们实际上是不相等的。

如何使用严格相等检查 Null
检查 null 的最佳方法是使用严格和明确的相等性:

console.log(leviticus === null)
// true

console.log(dune === null)
// false
Object.is()如何使用方法检查 Null
检查 null 的一种同样简单的方法是使用内置Object.is()方法:

console.log(Object.is(leviticus, null)
// true

console.log(Object.is(dune, null)
// false
概括
null是一个原始类型的变量,其计算结果为 falsy,具有一个typeof()对象,通常有意声明为null
undefined是一个原始类型的变量,其计算结果为 falsy,具有typeof()未定义的值,并表示已声明但缺少初始值的变量。
null == undefined评估为真,因为它们大致相等。
null === undefined评估为 false 因为它们实际上不相等。
<null_variable> === null是严格检查 null 的最佳方法。
Object.is(<null_variable>,null)是检查 null 的同样可靠的方法。
振作起来!您可能已经了解到,在 JavaScript 生态系统中有大量这样的脑筋急转弯。但是当你分解它时,你可以自信地理解它们/
谢谢阅读!
我希望这对您有所帮助。继续编码,继续前倾!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Q shen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值