原創聲明:本文為作者原創,未經允許不得轉載,經授權轉載需注明作者和出處
JavaScript 使用2種不同的等值運算符:=== !== 和 == !=,在比較操作中使用前者是最佳實踐。
“如果兩邊的操作數具有相同的類型和值,===返回true,!==返回false。”
然而,當使用==和!=時,你可能會遇到類型不同的情況,這種情況下,操作數的類型會被強制轉換成一樣的再做比較,這可能不是你想要的結果。
記住——首要目標是讓頁面盡可能快的呈獻給用戶,腳本的夾在是阻塞的,腳本加載并執行完之前,瀏覽器不能繼續渲染下面的內容。因此,用戶將被迫等待更長時間。
如果你的js只是用來增強效果——例如,按鈕的單擊事件——馬上將腳本放在body結束之前。這絕對是最佳實踐。
<html>
<body>
<p>給JavaScript初學者的建議</p>
<script type="text/javascript" src="javascript.js"></script>
<script type="text/javascript" src="jquery.js"></script>
</body>
</html>
要盡量保持for語句塊的簡潔,例如:
for(var i = 0; i < maomao.length; i++) {
var js = document.getElementById('js');
js.innerHtml += '茂茂: ' + i;
console.log(i);
}
這樣每次循環都要計算數組的長度,并且每次都要遍歷dom查詢“js”元素使得效率嚴重地下!
var js = document.getElementById('js'),len = maomao.length;
for(var i = 0; i < len; i++) {
js.innerHtml += '茂茂: ' + i;
console.log(i);
}
全局變量太多時,可能我們無意之中聲明的一個全局變量,其實之前已經存在。這是可能就會造成后面的值覆蓋掉前面的值。
比如,在函數內部依賴一個全局變量,一旦這個全局變量被刪除或被修改,都會影響到這個函數的執行是否正確。
依賴全局變量之后,整個框架要依賴于全局變量才能運行。所以要想進行局部測試或單元測試就必須要創建好完整的全局環境。
var maomao = 'maomao';
var club = 'club';
var maomao = 'maomao',
club = 'club';
盡量給你的代碼添加合理的注釋,這樣當一段時間后,重新看你的代碼,你可能記不清當初你的思路。或者你的一位同事需要修改你的代碼呢?
所以給代碼添加注釋是很重要的。
從技術上講,大多數瀏覽器允許你省略分號。
不過這樣的做法可能會導致更大的,難以發現的問題。
JavaScript庫,例如jQuery可以節省大量的編碼時間,特別是AJAX操作。
但是庫永遠不可能比原生JavaScript代碼更快。
jQuery的“each”方法是偉大的循環,但使用原生”for”語句總是更快。
以前腳本標簽中的“language”屬性非常常見。
<script type="text/javascript" language="javascript">
...
</script>
不過這個屬性已被html5棄用,所以請你移除。