in运算符基础问题

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:数组转换为字符串


慕后森
浏览 533回答 2
2回答

Qyouu

对于 Javascript 中的 in 操作符,根据 MDN 的定义是:The in operator returns true if the specified property is in the specified object.即如果属性存在于操作对象上时返回 true,否则为 false。一般的对象var obj = {name: 'stephenlee', age: 23};'name' in obj //true'hobby' in obj //false属性名需要用字符串来指定:name in obj //false数组对象使用数字索引值来表示数组对象的属性名称,当然数组对象固有的一些属性不包括在内,例如 length。以题主问题中的数组为例:var data = [7,8,9];相当于:data[0] = 7;data[1] = 8;data[2] = 9;所以很自然有如下结果:0 in data //true1 in data //true2 in data //true3 in data //false当然数组对象自带的属性也可以返回 true:length in data //true也可以将数组对象的索引值和固有属性转换为字符串来处理:'0' in data'length' in data

白衣染霜花

in 操作符是区查询对象的property,详见>>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript