1

可能重复:
运算符中的 javascript

为什么("a" in ["a","b"])yieldfalse(1 in [1,2])yield true?有没有理由"a"不匹配该数组的第一个元素而 1 匹配?为什么它不适用于字符串?

4

1 回答 1

5

in运算符通过键而不是值检查属性是否存在。并且您的长度为 2 的数组有一个索引"1"-arr["1"]是值2。例如,0 in ["a", "b"]也是true。该行为不依赖于正在使用的字符串或数字。

您通常会在普通对象上使用它,而不是在数组上。像"a" in {a:1} === true,或"b" in {a:1} === false

于 2012-08-04T11:28:27.017 回答