20條學(xué)習(xí)javascript的編程規(guī)范的建議
來源:易賢網(wǎng) 閱讀:758 次 日期:2014-12-01 11:19:08
溫馨提示:易賢網(wǎng)小編為您整理了“20條學(xué)習(xí)javascript的編程規(guī)范的建議”,方便廣大網(wǎng)友查閱!

1、使用js文件管理代碼

所有代碼盡量放在js文件中,然后再html文件中使用script引入,引入時注意放在body標(biāo)簽后面,并且不使用type或者language。

2、書寫縮進(jìn)

使用4個空白格縮進(jìn),注意不要使用tab鍵進(jìn)行縮進(jìn)。

3、斷句

注意行長,每行不超過80個字符,超過時要進(jìn)行適當(dāng)斷句,斷句應(yīng)該再操作符后面進(jìn)行,最理想的是在逗號(,)后面進(jìn)行斷句,斷句后下一行使用8格縮進(jìn)。

4、注解

一般使用單行注釋,塊注釋一般用于文檔。

5、變量聲明

所有變量使用之前先聲明,未聲明的變量會自動作為全局變量。全文應(yīng)少使用全局變量。

最好把所有變量聲明用一個var實(shí)現(xiàn),并且每個聲明單獨(dú)放一行,并添加注釋說明,如果可以所有聲明變量按照字符順序列出,如下:

代碼如下:

var currentEntry, //當(dāng)前選擇表項(xiàng)目

level; //縮進(jìn)級別

在函數(shù)體內(nèi)頂部定義所有變量,則var出現(xiàn)在函數(shù)體首行。

6、函數(shù)聲明

所有函數(shù)使用前應(yīng)該先聲明,并且在變量之后進(jìn)行-------有助于查看作用域。

函數(shù)名和括號直接不應(yīng)該有空格;右括號(和函數(shù)參數(shù)之間不應(yīng)該有空格;左括號)和函數(shù)體括號{之間有一個空格;函數(shù)體縮進(jìn)4個空格;函數(shù)體結(jié)束括號}和函數(shù)聲明關(guān)鍵字function首字符對齊。如下代碼:

代碼如下:

function outer(c,d) {

var e = c * d;

function inner(a,b) {

return (e * a ) + b;

}

return inner(0,1);

}

函數(shù)和對象可以被放在任何允許放表達(dá)式的地方。

匿名函數(shù)關(guān)鍵字function和左括號(之間有一個空格。

盡量少使用全局函數(shù)。

對于立即執(zhí)行函數(shù),整個調(diào)用表達(dá)式應(yīng)放在一對個括號()里面,以明確變量的值是函數(shù)執(zhí)行結(jié)果而不是函數(shù)本身。如下代碼:

代碼如下:

var result = (function () {

var key = "";

return {

get: function () {

return key;

},

set: function (key) {

key = key;

}

};

}());

7、命名

以字母、數(shù)字、下劃線命名,避免使用國際字符、美元符號$、反斜杠\。

不要使用下劃線作為名稱的首位字符。

大多數(shù)變量和函數(shù)使用小寫字母開頭命名。

構(gòu)造函數(shù)必須使用大寫字母開頭,在js中省略new不會報錯(編譯或者運(yùn)行錯誤),但最好不要省略。

全局變量應(yīng)用全部大寫命名(js中沒有宏和常量的概念)。

8、語句

簡單語句

每行最多一條語句,并且使用分號;結(jié)尾,注意以函數(shù)字面量和對象字面量賦值的語句也要使用分號;。

js允許任何一個變量作為一條語句,但是在插入分號的時候可能會引起某些錯誤,因此一般使用表達(dá)式的語句是賦值或者函數(shù)調(diào)用語句(這句英文原文我大概理解了,但是不知道怎么翻譯出來比較好)

復(fù)合語句(包含在一對{}之間的語句)

內(nèi)部語句縮進(jìn)4個空格。

左括號{應(yīng)該在開始語句行的末尾。

右括號應(yīng)該在最后單獨(dú)一行,并且與左括號所在行的首字符對齊。

當(dāng)語句在控制語句(例如for、if等)中時,應(yīng)該使用花括號{}將語句包圍起來,即使只有一條語句,這樣可以保證在添加語句時不產(chǎn)生bug。

9、標(biāo)簽(這一部分的理解感覺不是很對)

要使用label的語句是有選擇性的,只有下面幾種:while、for、do、switch。

10、返回語句

返回的值應(yīng)該用圓括號括起來,且返回表達(dá)式應(yīng)該和return關(guān)鍵字在同一行(避免換行插入分號)。

11、if語句

遵循如下格式:

代碼如下:

if (condition) {

statements

}

if (condition) {

statements

} else {

statements

}

if (condition) {

statements

} else if (condition) {

statements

} else {

statements

}

12、for語句

遵循如下格式:

代碼如下:

for (initiliazation; condition; update) {

statements

}

for (variable in object) {

if (filter) {

statements

}

}

第一種循環(huán)格式用于數(shù)組和可以判斷迭代次數(shù)的變量。

第二中用于對象遍歷

注:此處提到了在對象原型中添加的屬性是可以枚舉的,因此要使用hasOwnProperty方法進(jìn)行篩選,但是我用for in代碼測試的時候,沒有顯示,這里不知道問題出在了哪里。

13、while語句

遵循如下格式:

代碼如下:

while (condition) {

statements

}

14、do-while語句

遵循如下格式:

代碼如下:

do {

statements

} while (condition);

語句結(jié)尾要添加分號。

15、switch語句

遵循如下格式:

代碼如下:

switch (expression) {

case expression:

statements

default:

statements

}

每一個case都要和switch對齊,避免過分縮進(jìn),只有case標(biāo)簽不是語句,應(yīng)該不應(yīng)該縮進(jìn)。

每個case語句(除了default)必須要以break或return或throw結(jié)尾。

16、try語句

遵循如下格式:

代碼如下:

try {

statements

} catch (variable) {

statements

}

try {

statements

} catch (variable) {

statements

} finally {

statements

}

17、continue語句

避免使用continue語句。

18、with語句

不應(yīng)該使用with語句。

19、空格使用

通過設(shè)置空行來分割邏輯相關(guān)的代碼段,以增強(qiáng)代碼可讀性。

在以下情況下設(shè)置空格:

關(guān)鍵字之后跟隨左括號(要使用空格,例如:

while (true) {

不能在函數(shù)參數(shù)和左括號(之間使用空格。

除了點(diǎn)號(.)、左圓括號(()、方括號([)以外的二元運(yùn)算符都要使用一個空格來和操作數(shù)分割開。

除了typeof以外的一元操作符和他的操作數(shù)之間不應(yīng)有空格。

for語句控制塊()中每個分號;之后有一個空格。

每個逗號后面要有一個空格。

20、額外建議

[]和{}

當(dāng)成員名稱是連續(xù)整數(shù)時使用數(shù)組,當(dāng)成員名稱是任意字符串和名稱時使用對象。

使用{}代替new object(),使用[]代替new Array()。

逗號,操作符

避免使用逗號,操作符(這一規(guī)定不適用于對象字面量、數(shù)組字面量定義和var聲明語句以及參數(shù)列表)

塊級作用域

除了符合語句不使用語句塊,js沒有塊級作用域,只有函數(shù)作用域。

賦值表達(dá)式

while和if語句中條件判斷部分避免使用賦值語句。

===和!==

判定相等使用全等符號(===和!==),避免使用強(qiáng)制類型相等轉(zhuǎn)換符號(==和!=)。

若一個數(shù)字加(或者-)一個帶有符號(+或者-)的數(shù)字,或者帶有(++或--)的數(shù)字,則需要將帶有符號或者(++或--)的數(shù)字括起來。

eval是惡魔(eval的濫用l)

eval有相同情況,不應(yīng)使用Function構(gòu)造函數(shù),不向setTimeout或setInterval函數(shù)傳遞字符串。

以上20條建議都是本人在項(xiàng)目中總結(jié)出來的,對于新手學(xué)習(xí)javascript應(yīng)該是小有幫助的,都是個人經(jīng)驗(yàn),難免有不全面的地方,如果發(fā)現(xiàn)了,還請告之,這里拋磚引玉,大家共同進(jìn)步。

更多信息請查看IT技術(shù)專欄

更多信息請查看腳本欄目
易賢網(wǎng)手機(jī)網(wǎng)站地址:20條學(xué)習(xí)javascript的編程規(guī)范的建議
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機(jī)號
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報警專用圖標(biāo)