TS实用技巧:?? 控制合并运算符
??
空值合并运算符
判断非空时非常好用
1. 当左侧操作数为null
或者undefined
时,返回右侧的操作数,否则返回左侧的操作数,与||
不同的是,逻辑或会在左侧操作数为falsy
时(如:“”,0)返回右侧操作数,此时如果对空字符串或者0有意义时使用空值合并运算符会省去es5中的很多判断
-
const data1 = 0
-
// 如果data1是undefined或者null,data2=100
-
const data2 = data1 ?? 100
-
// es5实现
-
const data2 = data1===undefined || data1===null ? 100 : data1
可用于短路,当空值合并运算符的做表达式不是null或者undefined时,不会对右侧表达式进行求职
-
function A() { console.log('A was called'); return undefined;}
-
function B() { console.log('B was called'); return false;}
-
function C() { console.log('C was called'); return "foo";}
-
console.log(A() ?? C());
-
console.log(B() ?? C());