javascript中var和var之间的区别

这个问题在这里已经有了答案:

  • 对于JavaScript中的每个数组? 23个答案

  • 那么, 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

    上一篇: Difference between for vs for var in javascript

    下一篇: How to create a JavaScript For Each Loop