【发布时间】:2017-10-26 06:07:10
【问题描述】:
谁能解释一下这个 JavaScript 怪癖?
一个例子:
function func(hashTable) {
if (hashTable['foo'])
return true;
}
var hash = {};
hash['foo'] = 0;
func(hash);
我得到undefined 而不是true。
【问题讨论】:
-
(hashTable['foo'])在其值为 0 时评估为 false,因此跳过return true。然后返回 undefined。 -
@KaisinLi ,您希望 if 块在什么条件下执行?
-
@RohitAgrawal 最初我试图检查 hashTable 是否有键 'foo'。但正如您所建议的,hasOwnProperty 是更好的选择。
标签: javascript algorithm data-structures hashtable