xxxxxxxxxx
//nullish coalescing operator in js
Expression:
Left ?? Right
if left is null or undefined , then Right will be the value
let value = null ?? "Oops.. null or undefined";
console.log(value) //Oops.. null or undefined
value = undefined ?? "Oops.. null or undefined";
console.log(value) //Oops.. null or undefined
value = 25 ?? "Oops.. null or undefined";
console.log(value) // 25
value = "" ?? "Oops.. null or undefined";
console.log(value) // ""
xxxxxxxxxx
The nullish coalescing operator ( ?? ) is a logical operator that returns its right-hand side operand when its left-hand side operand is null or undefined , and otherwise returns its left-hand side operand
xxxxxxxxxx
// The nullish coalescing operator (??) provides a concise way to
// assign a default value to a variable if the variable is null or undefined.
// (??) considers values that are not null or undefined as truthy.
const res1 = undefined ?? 'Default'; // res7: 'Default'
const res2 = null ?? 'Default'; // res1: 'Default'
const res3 = NaN ?? 'Default'; // res3: 'Default'
const res4 = false ?? 'Default';// res5: false
const res5 = true ?? 'Default'; // res7: true
const res6 = '' ?? 'Default'; // res2: ''
const res7 = {} ?? 'Default'; // res6: {}
const res8 = 0 ?? 'Default'; // res4: 0
xxxxxxxxxx
The OR operator || uses the right value if left is falsy
(e.g. "" or 0 or false), while the nullish coalescing operator ?? uses
the right value if left is null or undefined.
xxxxxxxxxx
/* The coalescing operator is very nice to use with the optional chaining
for setting a default value. Thus, you could use the code below to fall
back on a default phone number which is an empty string */
const contactInfos = { address: "20B Rue Lafayette" };
console.warn(contactInfos.user?.phoneNumber ?? "")
// ""
xxxxxxxxxx
const value = null ?? 'Default Value';
console.log(value); // Output: 'Default Value'
xxxxxxxxxx
const defaultValue = 'Default Value';
const value1 = null;
const value2 = undefined;
const value3 = 'Actual Value';
console.log(value1 ?? defaultValue); // Output: Default Value
console.log(value2 ?? defaultValue); // Output: Default Value
console.log(value3 ?? defaultValue); // Output: Actual Value