JavaScript 函數(shù)和變量的命名規(guī)則

變量和函數(shù)

? ? 變量名應(yīng)該總是遵循駝峰大小命名寫法承边,并且命名前綴應(yīng)當(dāng)是名詞酗昼。以名詞作為前綴可以讓變量和函數(shù)區(qū)分開來逸尖,因為函數(shù)名前綴應(yīng)當(dāng)是動詞锄开。

//????好的寫法

var count = 10素标;

var myName = “Nichlas”;

var found = true萍悴;

//? ? 不好的寫法:變量看起來像函數(shù)

var getcount = 10头遭;

var isFound = true;

//????好的寫法

functiongetName() {

????????return myName癣诱;

}

//? ?不好的寫法:函數(shù)看起來像變量

function theName() {

????????return myName计维;

}

????????總結(jié):盡量在變量名中體現(xiàn)出值得數(shù)據(jù)類型。比如:撕予,命名? ? count鲫惶、length、size和page表明數(shù)據(jù)類型是數(shù)字实抡,而命名? ? name欠母、title、和message 表明數(shù)據(jù)類型是字符串吆寨。


函數(shù)命名方法:

? ? ? ? 對于函數(shù)的方法命名來說赏淌,第一個單詞應(yīng)該是動詞。


? ? ? ? ? ? ? ? ? ? 動詞? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????????? ????????????含義


????????????????????can? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?函數(shù)返回一個布爾值


????????????????????has? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?函數(shù)返回一個布爾值


????????????????????is? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 函數(shù)返回一個布爾值


????????????????????get? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 函數(shù)返回一個非布爾值


????????????????????set? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 函數(shù)用來保存一個值


示列:

????if (isEnabled()){

? ? ? ????? setName("Nicholas");??

??}???

?if(getName() === "Nicholas") {?

? ? ????? doSomething();??

??}


null:

? ? ? ? null是一個特殊值鸟废,但我們常常誤解它猜敢,將它和undefined搞混。在下列場景中應(yīng)當(dāng)使用null盒延。

●? ? 用來初始化一個變量缩擂,這個變量可能賦值為一個對象。

●? ? 用來和一個已經(jīng)初始化的變量比較添寺,這個變量可以是也可以不是一個對象胯盯。

●? ? ?當(dāng)函數(shù)的參數(shù)期望對象時,用作返回值傳入计露。

●? ? 當(dāng)函數(shù)的返回值期望是對象時博脑,用作返回值傳出。



還有下面一些場景不應(yīng)當(dāng)使用null

●????不要使用null來檢測是否傳入了某個參數(shù)票罐。

●? ? 不要用null來檢測一個未初始化的變量叉趣。


示列代碼:

// 好的方法

var person? = null;

//好的方法

function getPerson(){?

? ? ? if(condition){?

???????????????return? ? new Person(“Nicholas”)该押;

????????} else {

? ? ? ? ? ? ? ? return null疗杉;

????????}

}

//? ? 好的方法

var person = getPerson();

if(person !== null){?

? ????doSomething()蚕礼;

}

// 不好的寫法:用來和未初始化的變量比較

var person烟具;

if(person != null) {?

? ? ? doSomething()梢什;

}

?// 不好的寫法:檢測是否傳入?yún)?shù)

function doSomething(arg1,arg2朝聋,arg3嗡午,arg4){?

? ? ? if(arg4 != null){

? ? ? ? ? ? ? ? doSomethingElse();

????????}

}

????????理解null 最好的方式就是將它當(dāng)做對象的占位符(placeholder)冀痕。這個規(guī)則在所有的主流編程規(guī)范中都沒有提及荔睹,但對于全局維護(hù)性來說至關(guān)重要。


undefined:

????????undefined 是一個特殊值言蛇,我們通常將它和null搞混应媚。其中一個讓人頗為困惑之處在于 null == undefined 結(jié)果是true。 然而猜极,這兩個值得用途卻各不相同。那些沒有被初始化的變量都有一個初始值消玄,即 undefined跟伏,表示這個變量等待被賦值。

比如:

var? person翩瓜;

console.log(person === undefined)受扳; //true

盡管這段代碼能正常運行工作,但我們盡量避免代碼中使用undefined兔跌。


注釋:

????????單行注釋不應(yīng)當(dāng)連續(xù)多行注釋的形式出現(xiàn)勘高,除非你注釋掉一段換代碼。只有當(dāng)需要主是一段很長的文本時才使用多行注釋坟桅。

示列代碼:

// 好的寫法

if(condition) {


? ? // 如果代碼執(zhí)行到這里华望,則表明通過了所有的安全檢查?

? allowed();

}

// 不好的寫法:注釋之前沒有空格

if(condition) {

?// 如果代碼執(zhí)行到這里,則表明通過了所有的安全檢查

? ? allowed();

}


? ?正確的使用注釋:

????????何時添加注釋是程序員經(jīng)常爭論的一個話題仅乓。一種通行的指導(dǎo)原則是赖舟,當(dāng)代嗎不夠清晰時加注釋,而代碼很明確了時不應(yīng)當(dāng)添加注釋夸楣。

????//????不好的寫法

????//? ? ?初始化 count??

??????????var? count = 10宾抓;

????????代碼中初始化count 的操作顯而易見。 如果這個值10具有特殊的意義豫喧,通過戴拿無法看出來石洗,這個是有有必要添加注釋。

????//? ? 好的寫法

????// 改變這個值可能會讓它變成青蛙

????????var? count = 10紧显;

*????添加注釋一般的原則是讲衫,在需要讓代碼變得清晰時添加注釋。



最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鸟妙,一起剝皮案震驚了整個濱河市焦人,隨后出現(xiàn)的幾起案子挥吵,更是在濱河造成了極大的恐慌,老刑警劉巖花椭,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件忽匈,死亡現(xiàn)場離奇詭異,居然都是意外死亡矿辽,警方通過查閱死者的電腦和手機(jī)丹允,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來袋倔,“玉大人雕蔽,你說我怎么就攤上這事”瞿龋” “怎么了批狐?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長前塔。 經(jīng)常有香客問我嚣艇,道長,這世上最難降的妖魔是什么华弓? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任食零,我火速辦了婚禮,結(jié)果婚禮上寂屏,老公的妹妹穿的比我還像新娘贰谣。我一直安慰自己,他們只是感情好迁霎,可當(dāng)我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布吱抚。 她就那樣靜靜地躺著,像睡著了一般考廉。 火紅的嫁衣襯著肌膚如雪频伤。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天芝此,我揣著相機(jī)與錄音憋肖,去河邊找鬼。 笑死婚苹,一個胖子當(dāng)著我的面吹牛岸更,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播膊升,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼怎炊,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起评肆,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤债查,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后瓜挽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體盹廷,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年久橙,在試婚紗的時候發(fā)現(xiàn)自己被綠了俄占。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡淆衷,死狀恐怖缸榄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情祝拯,我是刑警寧澤甚带,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站佳头,受9級特大地震影響欲低,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜畜晰,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望瑞筐。 院中可真熱鬧凄鼻,春花似錦、人聲如沸聚假。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽膘格。三九已至峭范,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瘪贱,已是汗流浹背纱控。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留菜秦,地道東北人甜害。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像球昨,于是被迫代替她去往敵國和親尔店。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,149評論 0 13
  • 前端07班 王語句JavaScript程序的執(zhí)行單位為行(line)嚣州,也就是一行一行地執(zhí)行鲫售。一般情況下,每一行就是...
    ea203453e188閱讀 888評論 0 4
  • 第3章 基本概念 3.1 語法 3.2 關(guān)鍵字和保留字 3.3 變量 3.4 數(shù)據(jù)類型 5種簡單數(shù)據(jù)類型:Unde...
    RickCole閱讀 5,128評論 0 21
  • 函數(shù)和對象 1该肴、函數(shù) 1.1 函數(shù)概述 函數(shù)對于任何一門語言來說都是核心的概念情竹。通過函數(shù)可以封裝任意多條語句,而且...
    道無虛閱讀 4,566評論 0 5
  • 周五沙庐。工作得還好鲤妥,又被懟了,是自己沒做好才會給別人批評自己的理由拱雏。 然后就是棉安,該好好想想怎么提高速度了。既然做了铸抑,...
    小王子的前世今生閱讀 104評論 0 0