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());