1.可選鏈(?.)
let a; let b = a?.name; //undefined
只有當a存在,同時a具有name屬性的時候,才會把值賦給b,否則就會將undefined賦值給b.重要的是,不管a存在與否,這么做都不會報錯.
const arr = [{ name: "ww" }, { name: "qq" }]; console.log(arr?.[0]); // {name: 'ww'}
2.空值合並運算符(??)
let b; let a = null; let c = { name: 'ww'}; b = a ?? c; // {name: 'ww'}
上面的例子,當a除了undefined、或者null之外的任何值,b都會等於a,否則就等於c.
3.空值賦值運算符(??=)
let b = 'hello'; let a = 0; let c = null; let d = '123' console.log(b ??= a);//hello console.log(c ??= d);//123
當??=左側的值為null、undefined的時候,才會將右側的變量的值賦值給左側變量。其他所有值都不會進行賦值