如果为空或空字符串,则为True

时间:2019-12-19 21:50:24

标签: javascript

我在应用程序状态下有一个值,该值用于设置表单输入字段的值。在任何给定点,此值可以为null,未定义,空字符串或字符串。

然后我有一个函数,用于测试变量的prev值是否不等于当前值:

checkValues(prevValue, curValue) {
    if(prevValue != curValue && !curValue) { // do something }
}

问题是,如果prevValue是一个空字符串,而curValue为null,它将始终执行该操作。有时在从API提取数据的情况下会发生这种情况。最初设置为空字符串的值将变为null:

if('' != null) { // it does the thing because they are not the same }

但是,在这种情况下,我不想这样做。如何允许''!= null返回false而不是true?

1 个答案:

答案 0 :(得分:2)

您可以使用双管道运算符(||)将nullundefined的值强制为空字符串:

if ((prevValue || '') != (curValue || '')) {
}

您可以通过将这些双管道操作与if分开来使其更加简洁,例如:

var left = prevValue || '';
var right = curValue || '';
if (left != right) {
}