var data = [7,8,9]
"0" in data //=>ture:数组包含元素"0"
1 in data //=>true:数组转换为字符串
3 in data //=> false:没有索引为3的元素
不理解为什么下面这两段代码为true
"0" in data //=>ture:数组包含元素"0"
1 in data //=>true:数组转换为字符串
var data = [7,8,9]
"0" in data //=>ture:数组包含元素"0"
1 in data //=>true:数组转换为字符串
3 in data //=> false:没有索引为3的元素
不理解为什么下面这两段代码为true
"0" in data //=>ture:数组包含元素"0"
1 in data //=>true:数组转换为字符串
8 回答4.8k 阅读✓ 已解决
6 回答3.5k 阅读✓ 已解决
5 回答2.9k 阅读✓ 已解决
5 回答6.4k 阅读✓ 已解决
4 回答2.3k 阅读✓ 已解决
4 回答2.8k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
谢邀。
对于
Javascript
中的in
操作符,根据MDN
的定义是:即如果属性存在于操作对象上时返回
true
,否则为false
。一般的对象
属性名需要用字符串来指定:
数组对象
使用数字索引值来表示数组对象的属性名称,当然数组对象固有的一些属性不包括在内,例如
length
。以题主问题中的数组为例:
相当于:
所以很自然有如下结果:
当然数组对象自带的属性也可以返回
true
:也可以将数组对象的索引值和固有属性转换为字符串来处理: