var x=y||false的最佳替换



我正在处理的代码库包含许多javascript"默认运算符"的用法,例如:

var x = y || false;

我想知道,为了保证值永远不会是未定义的、null等,最好的替换方法是什么。我应该用"false"替换它们并检查字符串吗?我应该用它们的长手对应项替换它们吗(显式检查null和undefined)?还是每个用例都需要针对我没有考虑的内容进行评估?

当您的输入可能是有效的falsy值时,要设置非falsy默认值,一种方法是进行两次测试

if (!x && x !== 0) {
    x = 1; // 1 is the default value but 0 is a valid input
}

这样做的好处是可以排除无效的错误值,例如NaN


也就是说,你可能会更好地铸造或类型检查

if (typeof x !== 'number') x = 1;

x = +x;
if (x !== x) x = 1; // NaN goes to default

最新更新