重新介紹 JavaScript - MDC

&& 以及 || 運算子用的是「短路邏輯」(short-circuit logic),也就是說,第二個運算值是否會被執行靠的是第一個運算值。這用來在存取一個物件的屬性前檢查物件是否為空 (null) 非常有用:
var name = o && o.getName();
或是用來設預設值:
var name = otherName || "預設";
JavaScript 也有三元運算子 (tertiary operator),可以用來寫單行的條件陳述式:
var allowed = (age > 18) ? "是" : "否";
利用上述,便可以像下列一樣在陣列上做迴圈:
for (var i = 0; i < a.length; i++) {
    //處理 a[i]
}

這樣不是很有效率,因為每迴圈一次就會查詢一次 length 屬性。比較好的做法是:
for (var i = 0, len = a.length; i < len; i++) {
    //處理 a[i]
}

也可以使用while:
var i = arr.length; 
while (i--) {
a[i]
}

另外一個做迴圈的方法是用 for...in 迴圈。不過,假如有人用 Array.prototype 新增新的屬性,那些屬性也會被這種迴圈讀到:
for (var i in a) {
  //處理 a[i]
}

重新介紹 JavaScript - MDC