为了账号安全,请及时绑定邮箱和手机立即绑定

in运算符基础问题

in运算符基础问题

慕后森 2019-03-13 13:15:24
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:数组转换为字符串
查看完整描述

2 回答

?
Qyouu

TA贡献1786条经验 获得超11个赞

对于 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 //true

1 in data //true

2 in data //true

3 in data //false

当然数组对象自带的属性也可以返回 true:


length in data //true

也可以将数组对象的索引值和固有属性转换为字符串来处理:


'0' in data

'length' in data


查看完整回答
反对 回复 2019-04-12
?
白衣染霜花

TA贡献1796条经验 获得超10个赞

in 操作符是区查询对象的property,详见>>


查看完整回答
反对 回复 2019-04-12
  • 2 回答
  • 0 关注
  • 532 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信