JavaScript 編程規(guī)范

編程規(guī)范又叫代碼規(guī)范,為了便于自己和他人閱讀和理解源程序,而制定的編程時必須遵守的約定,javascript 項(xiàng)目有自己的代碼約定。

 

1. javascript 代碼約定

代碼約定(coding conventions)指的是編程的樣式指導(dǎo)方針。這些原則大體上包括:

  • 變量和函數(shù)的命名和聲明規(guī)則
  • 使用空格、縮進(jìn)和注釋的規(guī)則
  • 編程習(xí)慣和準(zhǔn)則

代碼約定確保質(zhì)量:

  • 改善代碼可讀性
  • 提升代碼可維護(hù)性

代碼約定可以是團(tuán)隊(duì)遵守的成文規(guī)則,也可以是您個人的編碼習(xí)慣。

本頁介紹 yapf 使用的通用 javascript 代碼約定。

您應(yīng)該繼續(xù)閱讀下一章“最佳實(shí)踐”,學(xué)習(xí)如何避免編碼陷阱。

 

2. 變量名

在 yapf,我們對標(biāo)識符名稱(變量和函數(shù))使用了駝峰式大小寫。

所有名稱以字母開頭。

在本頁的底部,我們會更廣泛地討論命名規(guī)則。

firstname = "bill";
lastname = "gates";
price = 19.90;
tax = 0.20;
fullprice = price + (price * tax);

 

3. 運(yùn)算符周圍的空格

請始終在運(yùn)算符( = + - * / )周圍以及逗號之后添加空格:

范例

var x = y + z;
var values = ["volvo", "saab",  "fiat"];

 

4. 代碼縮進(jìn)

請始終使用對代碼塊縮進(jìn)使用 4 個空格:

函數(shù)

function tocelsius(fahrenheit) {
    return (5 / 9) * (fahrenheit - 32);
}

請不要對縮進(jìn)使用制表符。不同的編輯器對 tab 的解釋也不盡相同。

 

5. 語句規(guī)則

簡單語句的通用規(guī)則:

請始終以分號結(jié)束單條語句:

范例

var values = ["volvo", "saab",  "fiat"];
var person = {
    firstname: "bill",
     lastname: "gates",
    age: 50,
    eyecolor:  "blue"
};

針對復(fù)雜語句(compound)的通用規(guī)則:

  • 請?jiān)诘谝恍械慕Y(jié)尾處寫開括號
  • 請?jiān)陂_括號前使用一個空格
  • 請?jiān)谛滦猩蠈戦]括號,不帶前導(dǎo)空格
  • 請不要以分號來結(jié)束復(fù)雜語句

函數(shù):

function tocelsius(fahrenheit) {
    return (5 / 9) * (fahrenheit - 32);
}

循環(huán):

for (i = 0; i < 5; i++) {
    x += i;
}

條件:

if (time < 20) {
    greeting = "good day";
} else {
     greeting = "good evening";
}

 

6. 對象規(guī)則

針對對象定義的通用規(guī)則:

  • 把開括號與對象名放在同一行
  • 在每個屬性與其值之間使用冒號加一個空格
  • 不要在最后一個屬性值對后面寫逗號
  • 請?jiān)谛滦猩蠈戦]括號,不帶前導(dǎo)空格
  • 請始終以分號結(jié)束對象定義

范例

var person = {
    firstname: "bill",
    lastname: "gates",
    age: 50,
    eyecolor:  "blue"
};

可以對短對象在一行中進(jìn)行壓縮,只在屬性之間使用空格,就像這樣:

var person = {firstname:"bill", lastname:"gates", age:50, eyecolor:"blue"};

 

7. 行長度小于 80

為了提高可讀性,請避免每行的長度超過 80 個字符。

如果 javascript 語句超過一行的長度,換行的最佳位置是運(yùn)算符或逗號之后。

范例

document.getelementbyid("demo").innerhtml =
    "hello kitty."; 

 

8. 命名約定

請始終對您所有的代碼使用相同的命名約定。例如:

  • 變量和函數(shù)名以駝峰大小寫來寫
  • 全局變量使用大寫(我們不這樣做,但是相當(dāng)普遍)
  • 常量(比如 pi)使用大寫

我們是否應(yīng)在變量名中使用連字符、駝峰大小寫或下劃線嗎?

這是程序員們經(jīng)常討論的問題。答案取決于這個問題是誰回答的:

html 和 css 中的連字符:

html5 屬性能夠以 data- 開頭(data-quantity, data-price)。

css 在 property-names 中使用連字符(font-size)。

hyphens 可被錯誤地視為減法運(yùn)算符。javascript 命名不允許使用連字符。

下劃線:

許多程序員喜歡使用下劃線(date_of_birth),特別是在 sql 數(shù)據(jù)庫中。

下劃線經(jīng)常被用在 php 參考資料中。

帕斯卡命名法(pascalcase):

c 語言程序員經(jīng)常使用帕斯卡命名法。

駝峰大小寫(camelcase):

javascript 本身、jquery 以及其他 javascript 庫使用駝峰大小寫。

javascript 命名請不要以 $ 符號開頭。此舉會引起 javascript 庫名稱沖突。

 

9. 在 html 中加載 javascript

使用簡單的語法來加載外部腳本(type 屬性不是必需的):

 

 

10. 訪問 html 元素

使用“不整潔的” html 樣式的后果,也許是導(dǎo)致 javascript 錯誤。

這兩條 javascript 語句會產(chǎn)生不同的結(jié)果:

var obj = getelementbyid("demo")
var obj = getelementbyid("demo") 

如果可能,請?jiān)?html 中使用相同的命名約定(就像 javascript 那樣)。

 

11. 文件擴(kuò)展名

html 文件應(yīng)該使用 .html 擴(kuò)展名(而非 .htm)。

css 文件應(yīng)該使用 .css 擴(kuò)展名。

javascript 文件應(yīng)該使用 .js 擴(kuò)展名。

 

12. 使用小寫文件名

大多數(shù) web 服務(wù)器(apache、unix)對文件名的大小寫敏感:

london.jpg 無法視作 london.jpg 進(jìn)行訪問。

其他 web 服務(wù)器(微軟的 iis)對大小寫不敏感:

london.jpg 能夠以 london.jpg 或 london.jpg 來訪問。

如果您混合使用大小寫,則必須嚴(yán)格保持連續(xù)和一致。

如果您將站點(diǎn)從大小寫不敏感的服務(wù)器轉(zhuǎn)移至對大小寫敏感的服務(wù)器,即使這種小錯誤也可能破壞您的網(wǎng)站。

為了避免這些問題,請始終使用小寫文件名(如果可能)。

 

13. 性能

計(jì)算機(jī)不會使用代碼約定。大部分規(guī)則對程序的執(zhí)行影響很小。

縮進(jìn)和額外的空格對小段腳本并不重要。

對于開發(fā)中的腳本,應(yīng)該優(yōu)先考慮可讀性。應(yīng)該縮小更大型的生產(chǎn)腳本。

下一節(jié):js 最佳實(shí)踐

js 教程

相關(guān)文章
亚洲国产精品第一区二区,久久免费视频77,99V久久综合狠狠综合久久,国产免费久久九九免费视频