## for-in 循環
只用于 object/map/hash 的遍歷
對 `Array` 用 `for-in` 循環有時會出錯. 因為它并不是從 `0` 到 `length - 1` 進行遍歷, 而是所有出現在對象及其原型鏈的鍵值. 下面就是一些失敗的使用案例:
```
function printArray(arr) {
for (var key in arr) {
print(arr[key]);
}
}
printArray([0,1,2,3]); // This works.
var a = new Array(10);
printArray(a); // This is wrong.
a = document.getElementsByTagName('*');
printArray(a); // This is wrong.
a = [0,1,2,3];
a.buhu = 'wine';
printArray(a); // This is wrong again.
a = new Array;
a[3] = 3;
printArray(a); // This is wrong again.
```
而遍歷數組通常用最普通的 for 循環.
```
function printArray(arr) {
var l = arr.length;
for (var i = 0; i < l; i++) {
print(arr[i]);
}
}
```