33.ES12-逻辑与赋值运算符和逻辑或赋值运算符和逻辑空赋值运算符

逻辑或赋值运算符

||= 当逻辑或赋值运算符前面的变量foo值转换为布尔值为false时,变量foo的值被赋值为'aaa',否则,依然为其本身

let foo = ''
foo ||= 'aaa'
console.log(foo) //aaa

逻辑与赋值运算符

&&= 当逻辑与赋值运算符前面的变量bar1值转换为布尔值为true时,变量bar1的值被赋值为'bbb',否则,依然为其本身

let bar1 = 0
bar1 &&= 'bbb'
console.log(bar1) //0
let bar2 = 10
bar2 &&= 'bbb'
console.log(bar2) //bbb

逻辑空赋值运算符

??= 当逻辑空赋值运算符前面的变量baz1值转换为null或undefined时,变量baz1的值被赋值为'ccc',否则,依然为其本身

let baz1 = NaN
baz1 ??= 'ccc'
console.log(baz1) //NaN
let baz2 = undefined
baz2 ??= 'ccc'
console.log(baz2) //ccc
let baz3 = null
baz3 ??= 'ccc'
console.log(baz3) //ccc

非常感谢王红元老师的深入JavaScript高级语法让我学习到很多 JavaScript 的知识

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容