for...in

for...in 语句用于遍历数组或者对象的属性.

一般情况下,for in 循环只会遍历我们自定义的属性,

原型上默认的属性不会遍历出来。

例如Object.prototype.toString()、Object.prototype.hasOwnProperty ()是不会被遍历出来的。

但在实际应用中

如果是在原型中新增属性或者方法

for...in会将原型中新增的属性和方法遍历出来

for(variable in object)
object为null、undefined,javascript会跳过循环执行后面的代码,在ECMAScript3中可能会抛出类型错误异常
object为原始值,会转换为与之对应的包装对象
若为对象类型,javascript会依次枚举对象的属性来执行循环,

在每次循环前,javascript都会先计算variable表达式的值,并将属性名(一个字符串)赋值给它

 ps:https://zhidao.baidu.com/question/514824028.html

例子

var obj = {type:'human',history:'300000years',use:'example'};
var arr2 = [],i=0;
for(arr2[i++] in obj) /*empty*/ ;
console.log(arr2); //["type","history","use"]

for ... in 循环中的代码每执行一次,就会对数组的元素或者对象的属性进行一次操作。
语法:
for (变量 in 对象)
{
在此执行代码
}
“变量”用来指定变量,指定的变量可以是数组元素,也可以是对象的属性。

例:

使用 for ... in 循环遍历数组。
<html>
<body>

<script type="text/javascript">
var x
var mycars = new Array()
mycars[0] = "Saab"
mycars[1] = "Volvo"
mycars[2] = "BMW"

for (x in mycars)
{
document.write(mycars[x] + "<br />")
}
</script>

</body></html>



原文地址:https://www.cnblogs.com/128lian/p/9943247.html