检查 javascript 中的空值

checking for null in javascript

if (valid === null) {
  return '';
} else if (!valid) {
  return 'is-not-valid';
} else if (valid) {
  return 'is-valid';
} else {
  return '';
}

我在代码中有上面的if-else-if链,想看看我是否可以在一两行中写出相同的逻辑。

既然要区分三种类型的值,那么至少要进行两次检查。 else 情况永远不会被命中,因为 !validvalid 将是 true。这也意味着您可以将最后一个 else if 减少为 else:

if (valid === null) {
  return '';
} else if (!valid) {
  return 'is-not-valid';
} else {
  return 'is-valid';
}

但是您可以使用 conditional operator:

来压缩此逻辑
return valid === null ? '' : (valid ? 'is-valid' : 'is-not-valid');

虽然我认为你的例子(没有多余的 else 块)看起来很不错,但你可以这样写在一行中:

return valid === null ? '' : (valid ? 'is-valid' : 'is-not-valid')

虽然我更喜欢原版