前言變量的命名相對而言沒(méi)有太多的技術(shù)含量,今天整理有關(guān)于變量命名相關(guān)的規則,主要是想告訴大家,雖然命名沒(méi)有技術(shù)含量,但對于個(gè)人編碼,或者說(shuō)一個(gè)團隊的再次開(kāi)發(fā)及閱讀是相當有用的。良好的書(shū)寫(xiě)規范可以讓你的JavaScript代碼更上一個(gè)臺階,也更有利于團隊的再次開(kāi)發(fā)和閱讀代碼。
全名原則
變量名區分大小寫(xiě),允許包含字母、數字、美元符號($)和下劃線(xiàn),但第一個(gè)字符不允許是數字,不允許包含空格和其他標點(diǎn)符號
變量命名長(cháng)度應該盡可能的短,并抓住要點(diǎn),盡量在變量名中體現出值的類(lèi)型
盡量避免使用沒(méi)有意義的命名
禁止使用
JavaScript關(guān)鍵詞、保留字全名變量名命名方法常見(jiàn)的有匈牙利命名法、駝峰命名法和帕斯卡命名法
匈牙利命名法
匈牙利命名法匈牙利命名法是電腦程序設計中的一種變量命名規則,此命名法又可細分為:系統匈牙利命名法和匈牙利應用命名法。
匈牙利命名法具備語(yǔ)言獨立的特性,并且首次在BCPL語(yǔ)言中被大量使用。由于BCPL只有機器字這一種數據類(lèi)型,因此這種語(yǔ)言本身無(wú)法幫助程序員來(lái)記住變量的類(lèi)型。匈牙利命名法通過(guò)明確每個(gè)變量的數據類(lèi)型來(lái)解決這個(gè)問(wèn)題。
在匈牙利命名法中,一個(gè)變量名由一個(gè)或多個(gè)小寫(xiě)字母開(kāi)始,這些字母有助于記憶變量的類(lèi)型和用途,緊跟著(zhù)的就是程序員選擇的任何名稱(chēng)。這個(gè)后半部分的首字母可以大寫(xiě),以區別前面的類(lèi)型指示字母。
語(yǔ)法
變量名 = 類(lèi)型 + 對象描述
類(lèi)型指變量的類(lèi)型
對象描述指對象名字全稱(chēng)或名字的一部分,要求有明確含義,命名要容易記憶容易理解。
通過(guò)在變量名前面添加相應小寫(xiě)字母的符號標示作為前綴,標示出變量的類(lèi)型,前綴后面是一個(gè)或多個(gè)單詞組合,單詞描述了變量的用途。如果是 jquery 對象,則用 $ 作為變量名的前綴。
提示
雖然 javascript 變量表面上沒(méi)有類(lèi)型,但是 javascript 內部還是會(huì )為變量賦予相應的類(lèi)型。
匈牙利命名法是一位微軟程序員發(fā)明的,多數的 c,c++ 程序都使用此命名法。
類(lèi)型
javascript 變量命名類(lèi)型變量命名前綴
array 數組a
boolean 布爾值b
float 浮點(diǎn)數l
function 函數fn
int 整型i
object 對象o
regular 正則r
string 字符串s
示例
var aName = [1, 2, 3];
var oBtn = document.getElementById('btn');
function fnName(){};
var iCount = 0;
var sName = "zhuyujia";
駝峰式命名法
當變量名和函數名稱(chēng)是由二個(gè)或多個(gè)單字鏈接在一起,而構成的唯一識別字時(shí),利用“駝峰式大小寫(xiě)”來(lái)表示,可以增加變量和函數的可讀性。
“駝峰式大小寫(xiě)(Camel-Case)一詞來(lái)自Perl語(yǔ)言中普遍使用的大小寫(xiě)混合格式,而Larry Wall等人所著(zhù)的暢銷(xiāo)書(shū)《Programming Perl》(O'Reilly出版)的封面圖片正是一匹駱駝?!?div style="height:15px;">
“駝峰式大小寫(xiě)”命名規則可視為一種慣例,并無(wú)絕對與強制,為的是增加識別和可讀性。一旦選用或設置好命名規則,在程序編寫(xiě)時(shí)應保持一致格式。
語(yǔ)法
變量名或函數名是由一個(gè)或多個(gè)單詞連結在一起,其中第一個(gè)單詞以小寫(xiě)字母開(kāi)始,后面的所有單詞的首字母都采用大寫(xiě)字母,這樣的變量名看上去就像駱駝峰一樣此起彼伏,故得名。
示例
var myName = "zhuyujia";
var formSubmit = document.getElementById("submit");
function timeCount(){}
帕斯卡命名法
Pascal命名法(Pascal Case,巴斯卡命名法/帕斯卡命名法),電腦程序編寫(xiě)時(shí)的一套命名規則(慣例)。
當變量名和函數名稱(chēng)是由二個(gè)或二個(gè)以上單字鏈接在一起,而構成的唯一識別字時(shí),用以增加變量和函數的可讀性。
單字之間不以空格斷開(kāi)或連接號(-)、下劃線(xiàn)(_)鏈接,第一個(gè)單前綴字母采用大寫(xiě)字母;后續單字的首字母亦用大寫(xiě)字母,例如:FirstName、LastName。每一個(gè)單字的首字母都采用大寫(xiě)字母的命名格式,被稱(chēng)為“Pascal命名法”,源自于Pascal語(yǔ)言的命名慣例,也有人稱(chēng)之為“大駝峰式命名法”(Upper Camel Case),為駝峰式大小寫(xiě)的子集。
“Pascal命名法”可視為一種命名慣例,并無(wú)絕對與強制,為的是增加識別和可讀性。一旦選用或設置好命名規則,在程序編寫(xiě)時(shí)應保持格式的一致性。
語(yǔ)法
和駝峰式命名法類(lèi)似,只不過(guò)第一個(gè)單詞的首字母需要大寫(xiě)。
示例
var MyName = "zhuyujia";
var FormSubmit = document.getElementById("submit");
function TimeCount(){}
JavaScript 代碼規范
JavaScript 代碼規范
代碼規范通常包括以下幾個(gè)方面:
變量和函數的命名規則
空格,縮進(jìn),注釋的使用規則。
其他常用規范……
規范的代碼可以更易于閱讀與維護。
代碼規范一般在開(kāi)發(fā)前規定,可以跟你的團隊成員來(lái)協(xié)商設置。
變量名
變量名推薦使用駝峰法來(lái)命名(camelCase):
firstName = "John";
lastName = "Doe";
price = 19.90;
tax = 0.20;
fullPrice = price + (price * tax);
空格與運算符
通常運算符 ( = + - * / ) 前后需要添加空格:
示例
var x = y + z;
var values = ["Volvo", "Saab", "Fiat"];
代碼縮進(jìn)
通常使用 4 個(gè)空格符號來(lái)縮進(jìn)代碼塊:
函數:
function toCelsius(fahrenheit) {
return (5 / 9) * (fahrenheit - 32);
}
注意:不推薦使用 TAB 鍵來(lái)縮進(jìn),因為不同編輯器 TAB 鍵的解析不一樣。
語(yǔ)句規則
簡(jiǎn)單語(yǔ)句的通用規則:
一條語(yǔ)句通常以分號作為結束符。
示例
var values = ["Volvo", "Saab", "Fiat"];
var person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
復雜語(yǔ)句的通用規則:
將左花括號放在第一行的結尾。
左花括號前添加一空格。
將右花括號獨立放在一行。
不要以分號結束一個(gè)復雜的聲明。
函數:
function toCelsius(fahrenheit) {
return (5 / 9) * (fahrenheit - 32);
}
循環(huán):
for (i = 0; i < 5; i++) {
x += i;
}
條件語(yǔ)句:
if (time < 20) {
greeting = "Good day";
} else {
greeting = "Good evening";
}
對象規則
對象定義的規則:
將左花括號與類(lèi)名放在同一行。
冒號與屬性值間有個(gè)空格。
字符串使用雙引號,數字不需要。
最后一個(gè)屬性-值對后面不要添加逗號。
將右花括號獨立放在一行,并以分號作為結束符號。
示例
var person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
短的對象代碼可以直接寫(xiě)成一行:
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
每行代碼字符小于 80
為了便于閱讀每行字符建議小于數 80 個(gè)。
如果一個(gè) JavaScript 語(yǔ)句超過(guò)了 80 個(gè)字符,建議在 運算符或者逗號后換行。
document.getElementById("demo").innerHTML =
"Hello W3Cschool.";
HTML 載入外部 JavaScript 文件
使用簡(jiǎn)潔的格式載入 JavaScript 文件 ( type 屬性不是必須的):
<script src="myscript.js">
使用 JavaScript 訪(fǎng)問(wèn) HTML 元素
一個(gè)糟糕的 HTML 格式可能會(huì )導致 JavaScript 執行錯誤。
以下兩個(gè) JavaScript 語(yǔ)句會(huì )輸出不同結果:
實(shí)例
var obj =getElementById("Demo")
var obj = getElementById("demo")
聯(lián)網(wǎng)嘗試一下 ?HTML 中 JavaScript 盡量使用相同的命名規則。
訪(fǎng)問(wèn) JavaScript 代碼規范。
使用小寫(xiě)文件名
大多 Web 服務(wù)器 (Apache, Unix) 對大小寫(xiě)敏感:london.jpg 不能通過(guò) London.jpg 訪(fǎng)問(wèn)。
其他 Web 服務(wù)器 (Microsoft, IIS) 對大小寫(xiě)不敏感:london.jpg 可以通過(guò) London.jpg 或 london.jpg 訪(fǎng)問(wèn)。
你必須保持統一的風(fēng)格,我們建議統一使用小寫(xiě)的文件名。
文件擴展名
HTML 文件后綴可以是 .html (或r .htm)。
CSS 文件后綴是 .css 。
JavaScript 文件后綴是 .js 。