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>