dsf*_*x3d 0 javascript ecmascript-6
在 JavaScript 中,
1 in [1, 2, ...] // returns true
Run Code Online (Sandbox Code Playgroud)
但
1 in [1] // returns false
Run Code Online (Sandbox Code Playgroud)
我偶然发现了这种奇怪的行为。在我浏览器的控制台上确认了它。
为什么会这样?
数组也是一个对象。
数组如下所示:
{
0: 1,
1: 2,
2: 3
length: 3
}
Run Code Online (Sandbox Code Playgroud)
in 运算符在对象中查找属性名称。
所以当你这样做时 1 in [1]它是错误的,因为对象看起来像这样......
{
0: 1,
length: 1
}
Run Code Online (Sandbox Code Playgroud)
请注意,没有1以 0 结尾的键名,也称为索引。
你也可以这样做1 in ['a','b'],这是真的......
所以简而言之,JS 中的数组是对象,它们的索引是对象中的键。该in运营商,而它们恰巧是索引键相匹配。
| 归档时间: |
|
| 查看次数: |
58 次 |
| 最近记录: |