讀古今文學網 > 編寫高質量代碼:改善JavaScript程序的188個建議 > 建議17:塊標誌並非多餘 >

建議17:塊標誌並非多餘

if、while、do或for語句可以接受一個括在大括號中的代碼塊,也可以接受單行語句。單行語句的形式是另一種「帶刺的玫瑰」。它的好處是可以節省兩個字節,但是它模糊了程序的結構,在隨後的操作中可能產生問題,例如:


if(0)

if(1)

alert(1);

else

alert(0);


如果不借助代碼版式,很難明白以上代碼的邏輯結構。而JavaScript解釋器會根據if關鍵字與else關鍵字最近原則按如下結構進行解釋。


if(0)

if(1)

alert(1);

else

alert(0);


如果其中子結構中包含多行語句,這個問題就比較麻煩了,甚至會出現執行錯誤的情況。因此,為了避免嵌套的條件結構發生混亂,應該使用大括號語法來分隔代碼塊,例如:


if(0){

if(1){

alert(1);

}

}

else{

alert(0);

}


嚴格遵循規範,並始終使用代碼塊,會使代碼更容易理解。