js中的特殊符號(hào) js編碼規(guī)范答案?
js編碼規(guī)范答案?1.嵌入規(guī)則Javascript程序應(yīng)該放在。js文件,并在需要時(shí)以ltscript src#34filename.js#34gt的形式包含在頁(yè)面中。如果Javascript代碼不是
js編碼規(guī)范答案?
1.嵌入規(guī)則
Javascript程序應(yīng)該放在。js文件,并在需要時(shí)以ltscript src#34filename.js#34gt的形式包含在頁(yè)面中。如果Javascript代碼不是特定于頁(yè)面的,您應(yīng)該盡量避免直接在頁(yè)面中編寫Javascript代碼。
2.對(duì)齊縮進(jìn)和換行
a)縮進(jìn)
同一系統(tǒng)應(yīng)采用相同的壓痕標(biāo)準(zhǔn)。本文主張縮進(jìn)大小應(yīng)為4個(gè)空格。編譯器對(duì)Tab鍵替換的空間大小有不同的定義。建議在設(shè)置開發(fā)環(huán)境時(shí),將編輯器中的Tab快捷鍵重置為4個(gè)空格。大多數(shù)編譯器都提供這個(gè)特性。否則建議縮進(jìn)4個(gè)空格。
b)換行
必須在以下位置換行:
在每個(gè)獨(dú)立語(yǔ)句的末尾;
If,else,catch,finally,while等關(guān)鍵詞;
當(dāng)一行在運(yùn)算符處中斷時(shí),該運(yùn)算符必須位于新行的開頭。
對(duì)于單行長(zhǎng)度超出限制時(shí)出現(xiàn)的換行,請(qǐng)參考行長(zhǎng)度中的分隔策略。
1).字符串太長(zhǎng),被截?cái)唷?/p>
每行代碼應(yīng)少于80個(gè)字符。如果代碼比較長(zhǎng),要盡量斷行,斷行要選在運(yùn)算符和標(biāo)點(diǎn)符號(hào)之后,最好選在分號(hào)或逗號(hào)之后。下一行代碼相對(duì)于前一行縮進(jìn)4個(gè)空格。這樣可以有效防止復(fù)制粘貼造成的代碼丟失等錯(cuò)誤,增強(qiáng)可讀性。
將字符串截?cái)嘁欢ㄩL(zhǎng)度,并用運(yùn)算符連接。盡可能在語(yǔ)義上分隔字符串,比如不要在一個(gè)完整的名詞中間斷開。特別地,對(duì)于HTML片段的拼接,通過(guò)縮進(jìn)來(lái)維持與HTML相同的結(jié)構(gòu):
您還可以使用數(shù)組進(jìn)行縫合,這使得相對(duì)于操作調(diào)整縮進(jìn)變得更加容易:
2).三元運(yùn)算符太長(zhǎng)。
三元運(yùn)算符由三部分組成,因此其換行符應(yīng)根據(jù)各部分的長(zhǎng)度而不同,形成三種不同的情況:
不得出現(xiàn)以下情況:
3).邏輯條件組合過(guò)長(zhǎng)
當(dāng)80個(gè)字符可以 由于復(fù)雜的邏輯條件組合而不能滿足需求,每個(gè)條件都要用單獨(dú)的一行來(lái)分隔,并且要把邏輯運(yùn)算符放在行首來(lái)分隔,或者用邏輯組合來(lái)分隔某些邏輯。最后把右括號(hào))和左大括號(hào){放在一個(gè)獨(dú)立的行上,保證if中的句塊在視覺(jué)上容易識(shí)別。比如:
4).長(zhǎng)JSON和數(shù)組。
如果一個(gè)對(duì)象的屬性很多,導(dǎo)致每個(gè)屬性一行占用的空間太大,可以按照語(yǔ)義或者邏輯組織成組,比如:
通過(guò)五組的分組,將每條線控制在合理的范圍內(nèi),進(jìn)行邏輯劃分。對(duì)于有很多項(xiàng)的數(shù)組,也可以采用同樣的方法,比如:
5).返回語(yǔ)句
Return如果將表達(dá)式的執(zhí)行作為返回值,請(qǐng)將表達(dá)式和return放在同一行,以免換行符被誤解為語(yǔ)句結(jié)束而導(dǎo)致返回?;劐e(cuò)誤。return 關(guān)鍵字后若沒(méi)有返回表達(dá)式,則返回 undefined。構(gòu)造器的默認(rèn)返回值為 this。
示例:
3.命名
命名的方法通常有以下幾類:
a).命名法說(shuō)明
1).camel命名法,形如thisIsAnApple
2).pascal命名法,形如ThisIsAnApple
3).下劃線命名法,形如this_is_an_apple ·
4).中劃線命名法,形如this-is-an-apple
根據(jù)不同類型的內(nèi)容,必須嚴(yán)格采用如下的命名法:
b).變量名:必須使用camel命名法
c).參數(shù)名:必須使用camel命名法
d).函數(shù)名:必須使用camel命名法
e).方法/屬性:必須使用camel命名法
f).私有(保護(hù))成員:必須以下劃線_開頭
g).常量名:必須使用全部大寫的下劃線命名法,如IS_DEBUG_ENABLED
h).類名:必須使用pascal命名法
i).枚舉名:必須使用pascal命名法
j).枚舉的屬性:必須使用全部大寫的下劃線命名法
k).命名空間:必須使用camel命名法
l).語(yǔ)義:命名同時(shí)還需要關(guān)注語(yǔ)義,如:
變量名應(yīng)當(dāng)使用名詞;
boolean類型的應(yīng)當(dāng)使用is、has等起頭,表示其類型;·
函數(shù)名應(yīng)當(dāng)用動(dòng)賓短語(yǔ);
類名應(yīng)當(dāng)用名詞。
4.注釋
注釋要盡量簡(jiǎn)單,清晰明了。著重注釋的意思,對(duì)不太直觀的部分進(jìn)行注解:
(當(dāng)然這種直接定義一堆全局變量的做法不推薦)
此外,JavaScript 的注釋有兩種#34//#34 和#34/* .... */#34,建議#34//#34用作代碼行注釋,#34/* .... */#34形式用作對(duì)整個(gè)代碼段的注銷,或較正式的聲明中,如函數(shù)參數(shù)、功能、文件功能等的描述中:
另:復(fù)制粘貼應(yīng)注意注釋是否與代碼對(duì)應(yīng)。
5.聲明
1).變量的聲明
盡管 JavaScript 語(yǔ)言并不要求在變量使用前先對(duì)變量進(jìn)行聲明。但我們還是應(yīng)該養(yǎng)成這個(gè)好習(xí)慣。這樣可以比較容易的檢測(cè)出那些未經(jīng)聲明的變量,避免其變?yōu)殡[藏的全局變量,造成隱患。
在函數(shù)的開始應(yīng)先用 var 關(guān)鍵字聲明函數(shù)中要使用的局部變量,注釋變量的功能及代表的含義,且應(yīng)以字母順序排序。每個(gè)變量單獨(dú)占一行,以便添加注釋。這是因?yàn)?JavaScript 中只有函數(shù)的 {} 表明作用域,用 var 關(guān)鍵字聲明的局部變量只在函數(shù)內(nèi)有效,而未經(jīng) var 聲明的變量則被作為一個(gè)全局變量。示例:
用var聲明的變量valu
密鑰里面有不可接受的字符?
密碼的處理邏輯盡量放在后端。特殊字符在B端到S端的傳輸過(guò)程中會(huì)被url編碼,在S端自動(dòng)解碼。后端代碼把用戶輸入當(dāng)作字符串,沒(méi)有問(wèn)題。入庫(kù)時(shí)可以先編譯sql語(yǔ)句,在入口和出口檢查數(shù)據(jù),防止sql注入。
此外,密碼通常以哈希存儲(chǔ)在庫(kù)中。如果前端通過(guò)js處理密碼,傳輸哈希值,特殊字符也會(huì)消失。