现实开发中,经常会有判断变量是否被定义的需求,然后根据它进行相应的操作:
let visitor1 = 'Kylin'console.log(visitor1 ?? '访客') // Kylinlet visitor2console.log(visitor2 ?? '访客') // 访客
如您所见,代码中 "??" 就是空值合并运算符 。它所表达的意思是,当一个值既不是 null 也不是 undefined 时,就将其称为 "已定义的" 。例如:a ?? b 的结果:
- 如果 a 是已定义的,结果就为 a,
- 如果 a 不是已定义的,结果就为 b 。
let firstName = nulllet lastName = nullconsole.log(firstName ?? lastName ?? '访客') // 访客
"??" 运算符与 "||" 运算符有些区别,"||" 运算符返回的是第一个真值,而 "??" 运算符返回的是第一个 "已定义的" 值 。这说明 "||" 运算符无法区分 "0, false, "", null, undefined":
let width = 0console.log(width || 100) // 100let width = 0console.log(width ?? 100) // 0
JAVAScript 禁止 "??" 与 "||" 和 "&&" 混用,除非用 "括号" 明确提升它们的优先级,否则会出现语法错误 。【JavaScript 空值合并运算符】
推荐阅读
- JavaScript 大文件分片上传处理
- 初一数学上册合并同类项的题-初中数学合并同类项-
- excel如何把两列的内容快速合并为一列?如何把excel两列合并成一列
- 将两个mp3文件合并?多个mp3文件合成一个
- 妊娠合并甲亢诊疗指南
- Object JavaScript 高级入门 对象 对象 实例
- 视频如何合并?三种方法
- Win10电脑如何合并磁盘分区
- 初学JavaScript之消息对话框
- JavaScript命名冲突不可避免?