秦歌(YanKaven) 的站點:http://dancewithnet.com/
這本來是翻譯Estelle Weyl的《15 JavaScript Gotchas》,里面介紹的都是在JavaScript編程實踐中平時容易出錯或需要注意的地方,并提供避開這些陷阱的方法,總體上講,就是在認(rèn)清事物本質(zhì)的基礎(chǔ)樣要堅持好的編程習(xí)慣,其實這就是Douglas Crockford很久以前提出的JavaScript風(fēng)格要素問題了,有些內(nèi)容直接是相同的,具體請看《Javascript風(fēng)格要素(1)》和《Javascript風(fēng)格要素(2)》。在翻譯的過程中,我又看到了賢安去年翻譯的《JavaScript的9個陷阱及評點》,其內(nèi)容又有些交叉在一起,所以我就在現(xiàn)有翻譯的基礎(chǔ)上做了一個簡單的拼合,并依據(jù)自己的理解增加了一些注釋和解釋。
- 區(qū)分大小寫:變量名、屬性和方法全部都區(qū)分大小寫
- 不匹配的引號、圓括號或花括號將拋出錯誤
- 條件語句:3個常見陷阱
- 換行:一直用分號結(jié)束語句來避免常見的換行問題
- 標(biāo)點法:在對象聲明的尾部逗號將導(dǎo)致出錯
- HTML id 沖突
- 變量作用域:全局變量對局部變量
- 函數(shù)重載:當(dāng)重載不存在時,覆蓋函數(shù)
- 區(qū)分string.replace()函數(shù)不是全局的
- parseInt應(yīng)該包含兩個參數(shù)
- “this”和綁定問題
- 為參數(shù)設(shè)置默認(rèn)值,以免你遺漏它們
- for each循環(huán)是用于對象而不是數(shù)組
- switch語句需要點技巧
- 總是在檢查undefined前檢查null
- 時間處理陷阱
區(qū)分大小寫
變量名和函數(shù)名都是區(qū)分大小寫的。就像配錯的引號一樣,這些大家都知道。但是,由于錯誤是不作聲的,所以這是一個提醒。為自己選擇一個命名規(guī)則,并堅持它。而且,記住JavaScript中的原生函數(shù)和CSS屬性都是 駱駝拼寫法(camelCase)。
getElementById(’myId’) != getElementByID(’myId’); //它應(yīng)該是“Id”而不是“ID” getElementById(’myId‘) != getElementById(’myID‘); // “Id”也不等于“ID” document.getElementById('myId').style.Color; //返回 "undefined"
不匹配的引號、圓括號或花括號
避免陷入不匹配的引號、圓括號或花括號陷阱的最好方式是編碼時一直同時寫出打開和關(guān)閉這兩個元素符號,然后在其中間加入代碼。開始:
var myString = ""; //在輸入字符串值之前寫入這對引號 function myFunction(){ if(){//關(guān)閉每個打開的括弧 } } //統(tǒng)計所有的左括號和右括號數(shù)量,并且確保它們相等 alert(parseInt(var1)*(parseInt(var2)+parseInt(var3))); //關(guān)閉每個打開的圓括號
每當(dāng)你打開一個元素,請關(guān)閉它。當(dāng)你添加了關(guān)閉圓括號后,你再把函數(shù)的參數(shù)放進(jìn)圓括號中。如果有一串圓括號,統(tǒng)計所有打開的圓括號和所有關(guān)閉的圓括號,并且確保這兩個數(shù)字相等。
出處:藍(lán)色理想
責(zé)任編輯:bluehearts
上一頁 下一頁 JavaScript的陷阱 [2]
◎進(jìn)入論壇網(wǎng)頁制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評論。
|