添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
原文: 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 模板