原始地址:https://dev.to/hereisnaman/logical-or-vs-nullish-coalescing-operator-in-javascript-3851
‘’'随着14版本的最新发布,NodeJS现在支持空值合并运算符(??)。在本文中,让我们看看这个运算符的用例以及它与逻辑或的区别。
逻辑或(||)
const paginate = (options = {}) => {
return [1, 2, 3, 4, 5].splice(0, options.limit || 3);
}
paginate(1); // 预期:[1],输出:[1]
paginate(); // 预期:[1, 2, 3],输出:[1, 2, 3]
paginate(0); // 预期:[],输出:[1, 2, 3]
逻辑或运算符的功能是,如果左侧值强制转为false,则返回右侧值。这不仅包括undefined和null,还包括0和’'。
在我们许多的用例中,例如上面的用例,这会导致意外的结果,我们最终使用typeof运算符。
空值合并运算符(??)
这为我们解决了问题。这个运算符只在左侧值是null或undefined时才返回右侧值。
const paginate = (options = {}) => {
return [1, 2, 3, 4, 5].splice(0, options.limit ?? 3);
}
paginate(1); // 预期:[1],输出:[1]
paginate(); // 预期:[1, 2, 3],输出:[1, 2, 3]
paginate(0); // 预期:[],输出:[]
在评论中分享你的快速JavaScript片段。
‘’’