在JavaScript中for..in和each..in有什么区别?

cod*_*nix 6 javascript foreach loops enumeration for-in-loop

在javascript中for..in和each..in语句有什么区别?是否存在我不知道的细微差别,或者它是否相同,每个浏览器都有不同的名称?

Bri*_*ndy 12

"for each ... in"在指定对象属性的所有值上迭代指定的变量.

例:

var sum = 0;
var obj = {prop1: 5, prop2: 13, prop3: 8};
for each (var item in obj) {
  sum += item;
}
print(sum); // prints "26", which is 5+13+8
Run Code Online (Sandbox Code Playgroud)

资源

"for ... in"以任意顺序迭代对象的所有属性上的指定变量.

例:

function show_props(obj, objName) {
   var result = "";
   for (var i in obj) {
      result += objName + "." + i + " = " + obj[i] + "\n";
   }
   return result;
}
Run Code Online (Sandbox Code Playgroud)

资源


注03.2013,不推荐使用for each... in循环.MDN推荐的"新"语法是.for... of


nic*_*ckf 7

这个演示应该有希望说明差异.

var myObj = {
    a : 'A',
    b : 'B',
    c : 'C'
};
for each (x in myObj) {
    alert(x);        // "A", "B", "C"
}
for (x in myObj) {
    alert(x);        // "a", "b", "c"
    alert(myObj[x]); // "A", "B", "C"
}
Run Code Online (Sandbox Code Playgroud)