一些技巧ES6技巧分享

47 阅读1分钟

空值合并运算符(Nullish coalescing Operator)

空值合并操作符( ?? )是一个逻辑操作符,当左侧的操作数为 null或者undefined时,返回其右侧操作数,否则返回左侧操作数。

const foo = 0 ?? "foo"
const bar = null ?? "bar"
const boo = undefined ?? "boo"

console.log(foo) // 0
console.log(bar) // bar
console.log(boo) // bar

||的区别:|| 遇到假值(例如'',0,NaN,false)会返回右操作数,例如:

const foo = 0 || "foo"
const bar = null || "bar"
const boo = undefined || "boo"
const be = false || "be"

console.log(foo) // foo
console.log(bar) // bar
console.log(boo) // bar
console.log(be) // be

注意:`??``||`不能同时使用,否则会报错。

??= 如果是null/undefined,赋值为右侧的值

 let obj = {age:8,name:''}

 obj.number ??= 90;
 obj.name ??= 'lily';

 console.log(obj); // { age: 8, name: '', number: 90 }

与 ||= 的区别在于,|| 判断假值:

 let obj = {age:8,name:''}

 obj.number ||= 90;
 obj.name ||= 'lily';

 console.log(obj); // { age: 8, name: 'lily', number: 90 }