【发布时间】:2021-07-23 18:05:49
【问题描述】:
我遇到了一个如下的面试问题,但我不知道 javascript 内部如何解释以下代码。
有人可以解释一下JS引擎是如何解释的吗? 这是否意味着“in”不是检查数组中包含的值?
const array = [1,2,3,4,5];
console.log(0 in array)
console.log("0" in array)
console.log(4 in [1,2,3,4,5])
console.log(4 in [1,2,3,4])
【问题讨论】:
-
最后一个不是在寻找
4的值,而是在寻找不存在的index 4 -
in运算符作用于键,而不是值。并且键是字符串(也适用于数组,尽管您通常不会使用它) -
我不知道 javascript,但我猜 a) 数组是对象,元素索引是对象的属性,b)
in查找该属性是否存在于对象上,c ) 通常的 javascript 类型强制“魔法” -
None 如标题所示,其中没有一个使用“for in”。
for-in和in是完全独立的。