可能重复:
运算符中的 javascript
为什么("a" in ["a","b"])
yieldfalse
和(1 in [1,2])
yield true
?有没有理由"a"
不匹配该数组的第一个元素而 1 匹配?为什么它不适用于字符串?
可能重复:
运算符中的 javascript
为什么("a" in ["a","b"])
yieldfalse
和(1 in [1,2])
yield true
?有没有理由"a"
不匹配该数组的第一个元素而 1 匹配?为什么它不适用于字符串?
in
运算符通过键而不是值检查属性是否存在。并且您的长度为 2 的数组有一个索引"1"
-arr["1"]
是值2
。例如,0 in ["a", "b"]
也是true
。该行为不依赖于正在使用的字符串或数字。
您通常会在普通对象上使用它,而不是在数组上。像"a" in {a:1} === true
,或"b" in {a:1} === false
。