我需要检查变量是否具有某些值或为null,然后使用变量值,否则采用默认值。我在以下条件下使用过,如何更好地编写它?
const newVal = val === null ? null : val || defaultVal;
答案 0 :(得分:3)
如果更好是您说更具可读性,那么这就是您的情况的表现:
if (val) {
return val;
} else if (val === null) {
return null;
} else {
return defaultVal;
}
答案 1 :(得分:2)
您可以使用带有两个检查的条件语句来返回val
,否则返回defaultVal
。
var val = null,
defaultVal = 'foo',
newVal = val || val === null ? val : defaultVal;
console.log(newVal);
答案 2 :(得分:1)
如果您想坚持使用ternary
,则可以这样写:val || val === null ? val : defaultValue
const getVal = (val, defaultValue = 0) => val || val === null ? val : defaultValue;
const val1 = null;
const val2 = 2599;
const val3 = undefined;
const val4 = 0;
console.log(
getVal(val1), // null
getVal(val2), // 2599
getVal(val3, 5), // 5
getVal(val4) // 0
);
答案 3 :(得分:0)
尝试一下:
const newVal = (function(v, defValue){return v||(v===null?null:defValue)})("desiredValue", "defValue");
在您的示例中:
const newVal = (function(v, dfV){return v||(v===null?null:dfV)})(val, defaultVal);
您可以删除该功能并单独使用该条件:
const newVal = val||(val===null?null:defaultVal);