Skip to main content

双竖线与双问号表达缺省值的区别

区别

  1. ??是将值与null或者undefined进行比较,如果值为null或者undefined,则返回缺省值,否则返回原值。

  2. ||是将值进行布尔判断,如果值为true则返回返回原值,否则返回缺省值

举例

空字符串的例子:

let createUser = () => {
return '';
};

const user = createUser();
// 输出 john
console.log(user || 'john');

// 输出 空字符
console.log(user ?? 'john');

NaN 数字的例子:

let createNumber = () => {
return NaN;
};

const num = createNumber();
// 输出 0
console.log(num || 0);

// 输出 NaN
console.log(num ?? 0);