如何检查null或未定义的数字,但处理零值?


@Input() a: number;
// Check of null or undefined
if (a)
// do stuff

对于通常的检查,值0也将被认为是false,并且变量将不通过if。

周围已经有很多问题,但我找不到任何处理值零的东西。
有没有类似于typescript的a?.b,但对于简单的类型?

明显的解决方案是冗长(当您需要检查多个值时,在您的条件下它很快变得拥挤)。

if (a !== undefined && a !== null)
// do stuff

我也想到了这个,有点短,但读起来不太明显

if (a || a === 0)
// do stuff

避免代码变得拥挤是一个很好的目标。您可以定义自己的函数,如下所示:

function isBlank(s) {
return (undefined === s || null === s || "" == s.trim());
}
function isZero(s) {
return (!isBlank(s) && "0" == s.trim());
}

您的原始代码块更改如下,并且同样易于阅读:

// Check of null or undefined
if (isZero(a))
// do stuff

关于JavaScript中假值的更多信息,这里有一些很好的资源:

https://stackabuse.com/javascript-loose-equality-operator-vs-strict-equality-operator/

JavaScript中的所有假值


设置一些附加值:

https://jsfiddle.net/Lr98kzsa/

相关内容

  • 没有找到相关文章

最新更新