偽の合体演算子


偽の合体演算子?? 右側のオペランドを返す論理演算子null or undefined , を返します.
const nullValue = null;

const val1 = nullValue ?? "default";

console.log(val1); // "default"
それは伝統的な' OR '論理演算子に似ています|| , しかし、違いは|| は右側のオペランドを返します.NaN , だけでなくnull or undefined .
例えば、
const val = null ?? 'default';
console.log(val);
// logs "default"

const val2 = 0 ?? 88;
console.log(val2);
// logs 0 because it is falsy
これは、伝統的なとの組み合わせでnullish合体演算子を使用することが可能です&&|| 演算子ですが、これらの論理演算子を含む文を括弧で囲む必要があります.例えば、
null || undefined ?? "value"; // SyntaxError
false || undefined ?? "value"; // SyntaxError

(null || undefined) ?? "value"; // returns "value"
一般的なパターンは、任意の連鎖演算子?. , これは、null or undefined .
const obj = { prop1: "hello" };

console.log(obj.prop1?.toUpperCase() ?? "error"); // "HELLO"
console.log(obj.prop2?.toUpperCase() ?? "error"); // "error"