Implizit globale "Element" -Variable - Unterschied zwischen Internet Explorer und FireFox

Nur aus Neugier.

Ich habe diesen JS-Code:

var someExternalArray = [{id: 1, name: 'a'}, {id: 2, name: 'b'}, {id: 3, name: 'c'}];
var newArray = []

//var item;
for (var i = 0; i < someExternalArray.length; i++){
    item = new Object();
    item.id = someExternalArray[i].id;
    item.name = someExternalArray[i].name;
    newArray.push(item);
}

alert('0:' + newArray[0].name + ',1:' + newArray[1].name + ',2:' + newArray[2].name);

Beachten Sie die kommentiertenvar item was die Schleife mit implizit deklariertem @ verläsitem variable.

Wenn ich diesen Code in FireFox ausführe, ist das Ergebnis der Warnung:0:a,1:b,2:c

Wenn ich im Internet Explorer denselben Code ausführe, lautet das Ergebnis:0:c,1:c,2:c

Hier ist jsfiddle:https: //jsfiddle.net/fvu9gb26

Natürlich, wenn ich das @ auskommentievar item Es funktioniert in jedem Browser auf die gleiche Weise.

Weiß jemand, warum dieser Unterschied auftritt? Vielen Dank

Antworten auf die Frage(4)

Ihre Antwort auf die Frage