最佳答案
在PHP中,可以使用if(isset($array['foo'])) { ... }
。在JavaScript中,你经常使用if(array.foo) { ... }
来做同样的事情,但这不是完全相同的语句。如果array.foo
确实存在,但为false
或0
(也可能为其他值),则条件也将计算为false。
PHP的isset
在JavaScript中的完美对等物是什么?
从更广泛的意义上说,一个关于JavaScript如何处理不存在的变量、没有值的变量等的通用的、完整的指南会很方便。
更新: 11年零11个月前,我发布了这个问题,哇,它仍然有很多活动。现在,我非常确定,当我写这篇文章时,我只是想知道如何检查关联数组(也就是字典)中是否存在属性,因此(对我来说)正确的答案涉及hasOwnProperty
或in
操作符。我对检查局部或全局变量不感兴趣。
但是,虽然我记得很清楚,但在写的问题中,这种意图并不十分清楚,甚至与之直接矛盾!我从来没有提到关联数组,PHP的isset
也做了那些其他的事情。让这成为我们所有人的一个教训,让我们知道在一个问题中正确地陈述你的要求是多么重要,以及全局变量、局部变量、对象属性、字典键和其他什么东西是多么重要。
与此同时,很多很多人也提供了这个问题的答案,所以对于那些通过谷歌找到这个问题的人来说,我很高兴我的含糊在某种程度上有所帮助。不管怎样,我只是想澄清一下。