本節書摘來自異步社群《javascript忍者秘籍》一書中的第1章,第1.4節,作者:【美】john resig(萊西格) , bear bibeault(貝比奧特) 譯者: 徐濤 更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。
掌握javascript語言和跨浏覽器編碼問題是成為web應用程式開發專家的重要條件,但它們并不是全部。要進軍專家行列,還需要秀出以下很多開發人員之前都已經掌握的高品質代碼。我們将在第2章深入研究這些被稱為最佳實踐(best practices)的特征,除了熟練掌握語言外,還包括如下元素。
測試。
性能分析。
調試技巧。
在我們的程式設計過程中,時常遵守這些最佳實踐是極其重要的;跨浏覽器開發的複雜性也直接證明了這一點。讓我們來看看這些實踐。
1.4.1 目前最佳實踐:測試
在本書中,我們将使用大量的測試技術,以確定示例代碼的運作符合我們的預期,同樣也作為測試一般代碼的示例。對于測試,我們将使用的一個主要工具是assert()函數,其目的是斷言代碼是true還是false。
該函數的一般形式是:

第一個參數是一個條件,應該是true,而第二個參數則是一個消息,在第一個參數不為true時進行顯示。
考慮如下代碼:
如果變量a的值不等于1,斷言就會失敗,這些過于戲劇性的消息就會顯示。
注意,assert()函數并不是javascript語言的原生特性(一些像java這樣的語言,也提供這樣的功能),是以我們會自己實作它。我們将在第2章讨論assert()函數的實作以及使用。
1.4.2 目前最佳實踐:性能分析
另一個重要的實踐是性能分析。浏覽器的javascript引擎在javascript本身的性能表現上取得了驚人的進步,但這并不是我們編寫劣質和低效代碼的借口。
我們将使用本書稍後的如下代碼,收集性能資訊:
上述代碼中,我們在代碼執行的地方記錄時間戳:一個在代碼執行開始前,一個在代碼執行後。兩個時間戳之間的內插補點告訴我們代碼執行了多少時間,使用相同的方式,我們可以測量其他替代代碼方案的執行時間。
注意我們是如何多次執行代碼的;在本例中,我們執行的次數由maxcount表示。因為代碼的單次操作執行太快而很難準确地測量,是以我們需要多次執行代碼以擷取可衡量的值。至于執行次數有多頻繁,這個數可以是成千上萬,甚至上百萬,這取決于被測代碼的性質。通過反複試驗,我們可以選擇一個合理的值。
這些最佳實踐技術,以及在這個過程中我們将學到的其他實踐,将極大地提高我們的javascript開發水準。用浏覽器提供的有限資源開發應用程式,再加上浏覽器功能和相容性問題的日益複雜,是以掌握完整和強大的技能是非常必要的。