我想在从process.env
阅读一些值之前添加一个未定义的检查。
现在假设我正在确保local.settings.json
中存在两个名为"firstConfig"
和"secondConfig"
的属性,我随意地写下了如下代码:
if(!Object.prototype.hasOwnProperty.call(process.env, "firstConfig" && "secondConfig")) {
throw new Error("Something Wrong")
}
// No exception thrown
为了证明这段代码,我删除了local.settings.json
中的"secondConfig"
if(!Object.prototype.hasOwnProperty.call(process.env, "firstConfig" && "secondConfig")) {
throw new Error("Something Wrong")
}
// Exception: Something Wrong
所以,看起来这段代码工作正常,但我找不到任何文档来解释它。
如果我想同时检查多个属性,在这里使用逻辑运算符是否有效?
1条答案
按热度按时间f0ofjuux1#
Object.property.hasOwnProperty.call(process.env, "firstConfig" && "secondConfig")
表达式的计算结果始终为true
,因为"secondConfig"
是一个真实值,并且"firstConfig"
&&"secondConfig"
将返回"secondConfig"
。若要正确检查是否存在多个属性,需要分别检查每个属性:
这样,只有当firstConfig或secondConfig不存在于process.env中时,才会抛出错误。