在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 關(guān)于in運算符

關(guān)于in運算符

我是一枚JS小白,今天看犀牛書,看到4.9.3章節(jié)的in運算符的時候,有個例子

var data=[7,8,9];
"0" in data //=>true:數(shù)組包含元素"0"
1 in data //=>true:數(shù)字轉(zhuǎn)換為字符串
3 in data //=>false:沒有索引為3的元素

就是“0” 和 1 為什么結(jié)果會是true呢?數(shù)組里面并不包含"0"和1啊,但是我自己用JS實際測試了后,書上的例子是正確的,百思不得騎姐,求前輩解惑

回答
編輯回答
離魂曲

in遍歷的是對象的key,數(shù)組是一種特殊的對象

在遍歷中,實際上keyString類型,in遍歷會隱式調(diào)用toString()方法來轉(zhuǎn)換key,所以"0"是"0", 1會轉(zhuǎn)換成"1"。

測試代碼如下:

var data=[7,8,9];
var key;
for(key in data) {
  console.log('key:', key, '-type: ', typeof key);
}

輸出結(jié)果如下:

key: 0 -type:  string
key: 1 -type:  string
key: 2 -type:  string
2017年8月23日 02:17
編輯回答
硬扛

in 檢測的是 key 。var data=[7,8,9]; 所以 key 是 0,1,2

2017年2月27日 20:11