1.變量緩存
//說(shuō)明:例如Dom的緩存卦溢,document.getElementById('ID’) 等方法查找dom是從 document開(kāi)始往body下面查找 dom 節(jié)點(diǎn) , 變量緩存了就不用再?gòu)?document 開(kāi)始往下找 。
2.事件監(jiān)聽(tīng)
//說(shuō)明 : 使用事件代理可提高代碼的可讀性馒铃。不管dom什么時(shí)候被添加到頁(yè)面上 昨悼, 都可以監(jiān)聽(tīng)成功 ,注意的是 ,此事件只可綁定一次 ,綁定多次就會(huì)觸發(fā)多次回調(diào)函數(shù) 惜颇,重新綁定并不會(huì)覆蓋上一次的綁定。這主要得益于瀏覽器的事件冒泡機(jī)制 少辣,以jquery封裝好的事件為例官还。
3.函數(shù)聲明與匿名函數(shù)
說(shuō)明 :為了調(diào)試清晰 , 選擇函數(shù)聲明 毒坛, 丟棄匿名函數(shù)。es6 的箭頭函數(shù)是匿名函數(shù) 林说,不可以是聲明函數(shù)煎殷。
4.算術(shù)操作符的問(wèn)題
說(shuō)明 : 代碼寫(xiě)少了 , 看起來(lái)并不直觀
5.嵌套三元表達(dá)式的問(wèn)題
說(shuō)明 : 嵌套三元表達(dá)式讓代碼難以看懂 腿箩, 難以理解 豪直。
6. 語(yǔ)句要加上雙括號(hào)
7.盡量使用嚴(yán)格等于 少使用寬松等于
說(shuō)明 : 寬松等于的轉(zhuǎn)換規(guī)則復(fù)雜且難以記憶
8.不要使用 with 語(yǔ)句 和 eval 函數(shù)。
說(shuō)明 : 它們會(huì)欺騙詞法作用域?qū)е滦阅芟陆?珠移, with 語(yǔ)句還能不知不覺(jué)把變量聲明到全局作用局下弓乙。
9.開(kāi)啟嚴(yán)格模式編寫(xiě)javascript代碼
說(shuō)明 :
1 消除Javascript語(yǔ)法的一些不合理、不嚴(yán)謹(jǐn)之處钧惧,減少一些怪異行為;
2 消除代碼運(yùn)行的一些不安全之處暇韧,保證代碼運(yùn)行的安全;
3 提高編譯器效率浓瞪,增加運(yùn)行速度懈玻;
4 為未來(lái)新版本的Javascript做好鋪墊。
10.注意構(gòu)造器函數(shù)和new運(yùn)算符
說(shuō)明 : 構(gòu)造器函數(shù)是和new運(yùn)算符一起使用的函數(shù) 乾颁, new運(yùn)算符基于該函數(shù)的原型創(chuàng)建一個(gè)新對(duì)象涂乌,并且把該對(duì)象綁定到this上艺栈。如果你忽略使用new , 新的對(duì)象不會(huì)被創(chuàng)建 湾盒,并且this會(huì)被綁定到全局對(duì)象上 湿右。
11.動(dòng)畫(huà)繪制16.6ms 性能優(yōu)化
說(shuō)明 : 性能優(yōu)化
12.不兼容ie的情況下 , 使用 css 3 動(dòng)畫(huà) 罚勾,丟棄定位
說(shuō)明 : 性能優(yōu)化 毅人, 使用 css 3 動(dòng)畫(huà)瀏覽器不會(huì)重新繪制 dom 樹(shù) , 使用定位瀏覽器會(huì)重新繪制 dom 樹(shù)荧库。