可能重复:
javascript in operator
为什么("a" in ["a","b"])
会产生false
,(1 in [1,2])
会产生true
?
有"a"
与该数组的第一个元素不匹配的原因是什么?
为什么它不能用于字符串?
答案 0 :(得分:5)
in
operator按键检查属性是否存在,而不是按值检查。您的长度为2 的数组的索引为"1"
- arr["1"]
,其值为2
。例如,0 in ["a", "b"]
也是true
。该行为不依赖于字符串或正在使用的数字。
您通常会在普通对象上使用它,而不是在数组上使用它。与"a" in {a:1} === true
或"b" in {a:1} === false
一样。