JavaScript 空值合并操作符 ??
JavaScript 大约 1080 字介绍
空值合并操作符(??
)是一个逻辑操作符,当左侧的操作数为null
或者undefined
时,返回其右侧操作数,否则返回左侧操作数。
与逻辑或操作符(||
)不同,逻辑或操作符会在左侧操作数为假值时返回右侧操作数。也就是说,如果使用||
来为某些变量设置默认值,可能会遇到意料之外的行为。比如为假值(例如:''
或0
)时。
语法
leftExpr ?? rightExpr
示例一
const nullValue = null;
const emptyText = ""; // 空字符串,是一个假值,Boolean("") === false
const someNumber = 42;
const valA = nullValue ?? "valA 的默认值";
const valB = emptyText ?? "valB 的默认值";
const valC = someNumber ?? 0;
console.log(valA); // "valA 的默认值"
console.log(valB); // ""(空字符串虽然是假值,但不是 null 或者 undefined)
console.log(valC); // 42
示例二
与||
的区别
let count = 0;
let text = "";
let qty = count || 42;
let message = text || "hi!";
console.log(qty); // 42,而不是 0
console.log(message); // "hi!",而不是 ""
let myText = ''; // An empty string (which is also a falsy value)
let notFalsyText = myText || 'Hello world';
console.log(notFalsyText); // Hello world
let preservingFalsy = myText ?? 'Hi neighborhood';
console.log(preservingFalsy); // '' (as myText is neither undefined nor null)
官方文档
阅读 506 · 发布于 2021-06-08
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb扫描下方二维码关注公众号和小程序↓↓↓

昵称:
随便看看
换一批
-
Spring Boot NoClassDefFoundError: com/mongodb/connection/DefaultClusterFactory阅读 2945
-
Android VideoView 播放本地视频短暂黑屏的解决方法阅读 3779
-
Notepad++ 保存 Ctrl-S 显示 DC3 ,搜索 Ctrl-F 显示 ACK 解决办法阅读 5185
-
JavaScript 监听标签页切换阅读 541
-
Nginx 解决前端 CORS 跨域问题阅读 6349
-
Windows 子系统 WslRegisterDistribution failed with error: 0x80370102阅读 71
-
Docker 容器间网络通讯阅读 242
-
Linux grep/zgrep 提示 Binary file matches阅读 2336
-
软考-系统架构设计师:数据库优化阅读 1459
-
IDEA Debug 查看方法返回值阅读 1325