一.簡介
模式:在軟件開發(fā)過程當中,模式一般指的是一個通用問題的解決方案,它提供了一個更好的實踐經(jīng)驗、有用的抽象化表示和解決一類問題的模板。
JS是一門面向?qū)ο蟮恼Z言,我們需要記住對象有兩種類型:
1.原生對象:指在ES標準中有詳細的描述,包括內(nèi)置對象(Number、Boolean、Array)和用戶自定義對象
2.主機對象:指在主機環(huán)境中定義的對象,包括Windows對象(window.~)和DOM對象(document.~ 、HTML的DOM節(jié)點.~)
ES的未來計劃中將只允許使用strict模式,設(shè)立嚴格模式的目的:
? ? ? ?- 消除Javascript語法的一些不合理、不嚴謹之處,減少一些怪異行為;
- 消除代碼運行的一些不安全之處,保證代碼運行的安全;
- 提高編譯器效率,增加運行速度;
- 為未來新版本的Javascript做好鋪墊。
二.基本技巧
盡量少用全局變量
獲取全局對象的方法:var global = (function(){ return this;}())
function(){
? ?var a=b=0;//a是局部變量,b是未經(jīng)聲明的全局變量
}
JS中的變量提升:JS允許在函數(shù)的任意地方聲明多個變量,無論在哪里聲明,效果都等同于在函數(shù)的頂部進行聲明
好的for循環(huán)模式是將已經(jīng)遍歷過的數(shù)組的長度緩存起來
使用正常的for循環(huán)來處理數(shù)組,使用for-in循環(huán)來處理對象
避免使用隱式類型轉(zhuǎn)換,善用===與!==
避免使用eval()
命名約定:
? ? ? ? 構(gòu)造函數(shù)的首字母大寫 : var adam = new Person();
? ? ? ? 構(gòu)造函數(shù)可使用大駝峰式命名法,如MyConstructor()
? ? ? ? ?函數(shù)和方法名可使用小駝峰式,如myFunction()
? ? ? ? ?精確的常量:var PI=3.14,MAX_WIDTH=800;
? ? ? ? ?私有函數(shù)和方法前加下劃線:_getFirst():function(){}
? ? ? ? ?私有變量后加下劃線:name_