javascript中var和var之间的区别
这个问题在这里已经有了答案:
那么, for(i in x)
与数组和对象一起工作
var x = [1, 2, 3];
for(var i in x) console.log(x[i]);
var o = {1:1, 2:2, 3:3};
for(var i in o) console.log(o[i]);
而for(;;)
仅适用于数组
var x = [1, 2, 3];
for(var i=0; i<x.length; i++) console.log(x[i]);
var o = {1:1, 2:2, 3:3};
for(var i=0; i<o.length; i++) console.log(x[i]); // returns undefined because object o doesn't have property length
但是你可以使用Object.keys
来获得对象的数组键
var o = {1:1, 2:2, 3:3};
var keys = Object.keys(o);
for(var i=0; i<keys.length; i++) console.log(o[keys[i]]);
常用的做法是将for(i in x)
用于对象, for(;;)
用于数组
就像它在MDN文档中所说的那样:
for ... in语句以任意顺序迭代对象的可枚举属性。 对于每个不同的属性,可以执行语句。
您的第一条语句用于数组,而第二条语句用于获取对象的所有键。
已经有这个问题的讨论和答案。
参考问题以了解差异。
for ... in语句以任意顺序迭代对象的可枚举属性。 对于每个不同的属性,可以执行语句。
for语句创建一个由三个可选表达式组成的循环,这些表达式用括号括起来并用分号分隔,然后是循环中执行的语句或一组语句。
链接地址: http://www.djcxy.com/p/12065.html