1.變量緩存
//說明:例如Dom的緩存,document.getElementById('ID’) 等方法查找dom是從 document開始往body下面查找 dom 節(jié)點(diǎn) , 變量緩存了就不用再從 document 開始往下找 。


2.事件監(jiān)聽
//說明 : 使用事件代理可提高代碼的可讀性。不管dom什么時(shí)候被添加到頁面上 , 都可以監(jiān)聽成功 ,注意的是 ,此事件只可綁定一次 ,綁定多次就會觸發(fā)多次回調(diào)函數(shù) ,重新綁定并不會覆蓋上一次的綁定。這主要得益于瀏覽器的事件冒泡機(jī)制 ,以jquery封裝好的事件為例。


3.函數(shù)聲明與匿名函數(shù)
說明 :為了調(diào)試清晰 , 選擇函數(shù)聲明 , 丟棄匿名函數(shù)。es6 的箭頭函數(shù)是匿名函數(shù) ,不可以是聲明函數(shù)。


4.算術(shù)操作符的問題
說明 : 代碼寫少了 , 看起來并不直觀


5.嵌套三元表達(dá)式的問題
說明 : 嵌套三元表達(dá)式讓代碼難以看懂 , 難以理解 。


6. 語句要加上雙括號


7.盡量使用嚴(yán)格等于 少使用寬松等于
說明 : 寬松等于的轉(zhuǎn)換規(guī)則復(fù)雜且難以記憶


8.不要使用 with 語句 和 eval 函數(shù)。
說明 : 它們會欺騙詞法作用域?qū)е滦阅芟陆?, with 語句還能不知不覺把變量聲明到全局作用局下。


9.開啟嚴(yán)格模式編寫javascript代碼
說明 :
1 消除Javascript語法的一些不合理、不嚴(yán)謹(jǐn)之處,減少一些怪異行為;
2 消除代碼運(yùn)行的一些不安全之處,保證代碼運(yùn)行的安全;
3 提高編譯器效率,增加運(yùn)行速度;
4 為未來新版本的Javascript做好鋪墊。

10.注意構(gòu)造器函數(shù)和new運(yùn)算符
說明 : 構(gòu)造器函數(shù)是和new運(yùn)算符一起使用的函數(shù) , new運(yùn)算符基于該函數(shù)的原型創(chuàng)建一個(gè)新對象,并且把該對象綁定到this上。如果你忽略使用new , 新的對象不會被創(chuàng)建 ,并且this會被綁定到全局對象上 。

11.動畫繪制16.6ms 性能優(yōu)化
說明 : 性能優(yōu)化


12.不兼容ie的情況下 , 使用 css 3 動畫 ,丟棄定位
說明 : 性能優(yōu)化 , 使用 css 3 動畫瀏覽器不會重新繪制 dom 樹 , 使用定位瀏覽器會重新繪制 dom 樹。
