原文:
JS Check for Null – Null Checking in JavaScript Explained
null 是 JavaScript 中的一个原始类型。这意味着你应该能够用
typeof()
方法来检查一个变量是否为
null
。但不幸的是,由于一个无法修复的
历史错误
,这个方法返回的是 “object”。
let userName = null;
console.log(typeof(userName)); // object
那么,你现在如何检查 null 呢?本文将教你如何检查 null,以及 JavaScript 类型 null 和 undefined 的区别。
JavaScript 中的 null 与 undefined
在 JavaScript 中,null 和 undefined 是非常相似的,都是原始类型。
如果一个变量包含
null
值,它的类型就是
null
。相反,当你声明一个变量而没有初始化一个值时,它的类型是
undefined
。
// 这是 null
let firstName = null;
// 这是 undefined
let lastName;
undefined 的效果很好,因为当你使用
typeof()
方法检查类型时,它将返回
undefined
:
let lastName;
console.log(typeof(lastName)); // undefined
现在让我们看看检查
null
的两种主要方式,以及它与
undefined
的关系。
如何在 JavaScript 中用相等运算符检查 null
相等运算符提供了检查
null
的最好方法。你可以使用宽松/两个相等运算符(
==
)或严格/三个相等运算符(
===
)。
如何使用宽松相等运算符来检查 null
你可以使用宽松相等运算符来检查
null
值:
let firstName = null;
console.log(firstName == null); // true
但是,这可能有点问题,因为如果变量是未定义的,它也会返回
true
,因为
null
和
undefined
都是宽松相等。
let firstName = null;
let lastName;
console.log(firstName == null); // true
console.log(lastName == null); // true
console.log(firstName == undefined); // true
console.log(lastName == undefined); // true
console.log(firstName == lastName); // true
console.log(null == undefined); // true
注意:
当你想检查一个变量是否没有值时,这可能很有用,因为当一个变量没有值时,它可能是
null
或
undefined
。
但是,如果你只想检查
null
- 那么你可以使用严格相等运算符。
如何使用严格相等运算符来检查 null
与宽松相等运算符相比,严格相等运算符只有在你正好有一个
null
值时才会返回
true
。否则,它将返回
false
(这包括
undefined
)。
let firstName = null;
let lastName;
console.log(firstName === null); // true
console.log(lastName === null); // false
console.log(firstName === undefined); // false
console.log(lastName === undefined); // true
console.log(firstName === lastName); // false
console.log(null === undefined); // false
正如你所看到的,只有当空变量与
null
比较时,以及未定义变量与
undefined
比较时,返回
true
。
如何用 Object.is() 方法检查 JavaScript 中的 null
Object.is()
是一个 ES6 方法,用于确定两个值是否相同。它的原理类似于严格相等运算符。
// 语法
Object.is(value1, value2)
让我们利用前面的例子,看看它是否像严格相等运算符那样工作:
let firstName = null;
let lastName;
console.log(Object.is(firstName, null)); // true
console.log(Object.is(lastName, null)); // false
console.log(Object.is(firstName, undefined)); // false
console.log(Object.is(lastName, undefined)); // true
console.log(Object.is(firstName, lastName)); // false
console.log(Object.is(null, undefined)); // false
发生这种情况是因为它只在两个值相同时返回
true
。这意味着只有当设置为
null
的变量与
null
比较时,以及未定义的变量与
undefined
比较时,它才会返回
true
。
总结
现在你知道如何检查 null 了。你还可以检查一个变量是否被设置为
null
或
undefined
,你也知道了宽松和严格相等运算符之间的区别。
我希望这篇文章对你有帮助,happy coding!
freeCodeCamp 是捐助者支持的 501(c)(3) 条款下具有免税资格的慈善组织(税号:82-0779546)。
我们的使命:帮助人们免费学习编程。我们通过创建成千上万的视频、文章和交互式编程课程——所有内容向公众免费开放——来实现这一目标。
所有给 freeCodeCamp 的捐款都将用于我们的教育项目,购买服务器和其他服务,以及聘用员工。
你可以
点击此处免税捐款
。
about:blank 是什么意思
打开 .dat 文件
Node 最新版本
反恶意软件服务
Windows10 产品密钥
Git 切换分支
AppData 文件夹
Windows 10 屏幕亮度
JSON 注释
MongoDB Atlas 教程
Python 字符串转数字
Git 命令
更新 NPM 依赖
谷歌恐龙游戏
CSS 使用 SVG 图片
Python 获取时间
Git Clone 指定分支
JS 字符串反转
React 个人作品网站
媒体查询范围
forEach 遍历数组
撤销 Git Add
OSI 七层网络
Event Loop 执行顺序
CMD 删除文件
Git 删除分支
HTML 表格代码
Nano 怎么保存退出
HTML5 模板