js的for (参数) in (对象或数组)语句,是不是这个参数返回的都是对象或数组的序号?我用来遍历数组时就是.

JavaScript016

js的for (参数) in (对象或数组)语句,是不是这个参数返回的都是对象或数组的序号?我用来遍历数组时就是.,第1张

For...In 声明用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作)。

JavaScript For...In 声明

For...In 声明用于对数组或者对象的属性进行循环操作。

for ... in 循环中的代码每执行一次,就会对数组的元素或者对象的属性进行一次操作。

语法:

for (变量 in 对象)

{

在此执行代码

}“变量”用来指定变量,指定的变量可以是数组元素,也可以是对象的属性。

1:解析:

for...in 语句

对应于一个对象的每个,或一个数组的每个元素,执行一个或多个语句。

for (variable in [object | array])

2:参数

variable

必选项。一个变量,它可以是 object 的任一属性或 array 的任一元素。

object, array

可选项。要在其上遍历的对象或数组。

3:说明

在循环的每次迭代前,variable 被赋予 object 的下一个属性或 array 的下一个元素。然后可以在循环内的任一语句中使用它,就好像正在使用 object 的该属性或 array 的该元素一样。

当在一个对象上迭代时,没有办法决定或控制把对象的成员赋给 variable 的次序。在数组内将按元素的次序执行迭代,也就是,0、1、2、......

4:示例

document.write("<font color='red'>for in用法举例--数组</font><br>")

var obj=["zhao","liang","zl","an"]

for(var j in obj)

{

document.write("索引"+j+"、"+obj[j]+"<br>")

}

document.write("<font color='red'>for in用法举例--对象</font><br>")

var obj2={"name":"zl","age":"24","sex":"男"}

for(var j in obj2)

{

document.write("属性名:"+j+"------》值:"+obj2[j]+"<br>")

}

在 ECMA-262 中没有明确规定此行为,只说取决于实现。现在的普遍实现是先把当中的非负整数键提出来,排序好输出,然后将剩下的按定义时的顺序输出。

参考

for in 循环的输出顺序问题 - 司徒正美 - 博客园

对Set和Map,for of 遍历的顺序是按照各个成员被添加进数据结构的顺序。

参考

Iterator 和 for...of 循环 - ECMAScript 6入门