如何检查变量值是未定义还是“未定义”

时间:2018-08-30 23:57:40

标签: javascript node.js

我已经使用node.js创建了REST API,因为API使用者没有正确填充对象,并且某些对象属性即将到来} ,有时是"undefined"

我添加了一个请求拦截器,如果缺少必需的请求参数,该拦截器会拒绝API请求

这就是我今天的代码的样子。我只想检查是否有更好的方法来处理它。

undefined

1 个答案:

答案 0 :(得分:2)

最具体和不言自明的方式是:

foo === undefined || foo === 'undefined'

!foo || foo === 'undefined'

条件等同于

foo === undefined || foo === null || foo === false ||  foo === '' ||  foo === 0 || foo === NaN || foo === 'undefined'

对于列出的任何虚假值,这可能会导致误报。在这种情况下,不应使用!foo

一种较短的方法是将foo强制转换为字符串:

'' + foo === 'undefined'

对于具有toString()返回undefined的任何对象,这可能导致误报。如果不希望这样做,则不应使用。

这是一种解决方法,可以解决最初不应该存在的问题。 undefined不应与'undefined'字符串区分开,因为这样一来就无法分辨它最初是'undefined'字符串(“ undefined”是一个单词)还是undefined被不小心串起来了。