我在应用程序状态下有一个值,该值用于设置表单输入字段的值。在任何给定点,此值可以为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?
答案 0 :(得分:2)
您可以使用双管道运算符(||
)将null
或undefined
的值强制为空字符串:
if ((prevValue || '') != (curValue || '')) {
}
您可以通过将这些双管道操作与if
分开来使其更加简洁,例如:
var left = prevValue || '';
var right = curValue || '';
if (left != right) {
}