8. 減少全局變量
“把你踩在全局的那些亂七八糟的腳印都歸于一人名下,能顯著降低與其他應(yīng)用、小工具或JS庫沖突的可能性! – Douglas Crockford
var name = 'Jeffrey'; var lastName = 'Way'; function doSomething() {...} console.log(name); // Jeffrey -- or window.name
更好的寫法:
var DudeNameSpace = { name : 'Jeffrey', lastName : 'Way', doSomething : function() {...} } console.log(DudeNameSpace.name); // Jeffrey
注意看,我們是如何戲劇化地把“亂七八糟的腳印”都歸到“DudeNameSpace”這對象之下的。
9. 寫好注釋
可能一開始你會覺得并無必要,但相信我,你將來會主動想要盡可能寫好代碼的注釋的。當你幾個月后再回看某項目時,結(jié)果卻發(fā)現(xiàn)很難想起當時寫某句東西時腦子在想的什么了,是不是很讓人沮喪呢?或者,如果有同事要修訂你的代碼呢?一定,一定要為你代碼里的重要部分加上注釋。
// Cycle through array and echo out each name. for(var i = 0, len = array.length; i < len; i++) { console.log(array[i]); }
10. 試試漸進增強
一定要記得為未啟用JavaScript的情況提供替代方案。大家可能會認為,“大部分我的訪客都啟用了JavaScript的,我才不用擔心”。這樣的話,你可就大錯特錯了!
你有沒有試過看看禁用JavaScript后你那漂亮的滑動器都成啥樣了?(你可以下載 Web Developer ToolBar 輕松完成這項任務(wù)。)禁用之后你的網(wǎng)站可能就徹底失去了可用性!經(jīng)驗之談:開發(fā)初期總是按照沒有JavaScript來設(shè)計你的網(wǎng)站,之后再進行漸進地功能增強,小心翼翼地改變你地布局。
11. 不要傳遞字串給 “setInterval” 或 “setTimeout”
看看下面的代碼:
setInterval( "document.getElementById('container').innerHTML += 'My new number: ' + i", 3000 );
不僅執(zhí)行不高效,而且和 eval 函數(shù)有著同樣的高風險。千萬不要把字串傳遞給 setInterval 和 setTimeout。恰當?shù)淖龇ㄊ牵瑐鬟f一個函數(shù)名:
setInterval(someFunction, 3000);
12. 不要使用with語句
初識之下,“with”語句似乎還挺好用的。它用于設(shè)置代碼在特定對象中的作用域。其基本用法是提供深入到對象中處理元素的快速寫法。例如:
with (being.person.man.bodyparts) { arms = true; legs = true; }
等價于:
being.person.man.bodyparts.arms = true; being.person.man.bodyparts.legs= true;
不幸的是,測試表明,若你要為對象插入新成員,with的表現(xiàn)非常糟糕,它的執(zhí)行速度非常緩慢。替代方案是聲明一個變量:
var o = being.person.man.bodyparts; o.arms = true; o.legs = true;
出處:笨活兒
責任編輯:bluehearts
上一頁 給JavaScript新手的24條實用建議 [2] 下一頁 給JavaScript新手的24條實用建議 [4]
◎進入論壇網(wǎng)頁制作、WEB標準化版塊參加討論,我還想發(fā)表評論。
|