我可以用更好的方式写这个条件吗?
Can i write this condition in better way?
我需要检查变量是否有某个值或 null 然后使用变量值,否则采用默认值。我已经使用了以下条件,我怎样才能更好地写它?
const newVal = val === null ? null : val || defaultVal;
如果更好你的意思是更具可读性,你的情况是这样的:
if (val) {
return val;
} else if (val === null) {
return null;
} else {
return defaultVal;
}
您可以使用条件语句对 returning val
进行两次检查,否则 return defaultVal
.
var val = null,
defaultVal = 'foo',
newVal = val || val === null ? val : defaultVal;
console.log(newVal);
如果你想坚持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
);
试试这个:
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);
我需要检查变量是否有某个值或 null 然后使用变量值,否则采用默认值。我已经使用了以下条件,我怎样才能更好地写它?
const newVal = val === null ? null : val || defaultVal;
如果更好你的意思是更具可读性,你的情况是这样的:
if (val) {
return val;
} else if (val === null) {
return null;
} else {
return defaultVal;
}
您可以使用条件语句对 returning val
进行两次检查,否则 return defaultVal
.
var val = null,
defaultVal = 'foo',
newVal = val || val === null ? val : defaultVal;
console.log(newVal);
如果你想坚持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
);
试试这个:
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);