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

變量和函數(shù)

? ? 變量名應(yīng)該總是遵循駝峰大小命名寫法,并且命名前綴應(yīng)當(dāng)是名詞。以名詞作為前綴可以讓變量和函數(shù)區(qū)分開來,因?yàn)楹瘮?shù)名前綴應(yīng)當(dā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ù)命名方法:

? ? ? ? 對(duì)于函數(shù)的方法命名來說,第一個(gè)單詞應(yīng)該是動(dòng)詞。


? ? ? ? ? ? ? ? ? ? 動(dòng)詞? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????????? ????????????含義


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


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


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


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


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


示列:

????if (isEnabled()){

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

??}???

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

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

??}


null:

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

●? ? 用來初始化一個(gè)變量,這個(gè)變量可能賦值為一個(gè)對(duì)象。

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

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

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



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

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

●? ? 不要用null來檢測一個(gè)未初始化的變量。


示列代碼:

// 好的方法

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)做對(duì)象的占位符(placeholder)。這個(gè)規(guī)則在所有的主流編程規(guī)范中都沒有提及,但對(duì)于全局維護(hù)性來說至關(guān)重要。


undefined:

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

比如:

var? person;

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

盡管這段代碼能正常運(yùn)行工作,但我們盡量避免代碼中使用undefined。


注釋:

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

示列代碼:

// 好的寫法

if(condition) {


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

? allowed();

}

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

if(condition) {

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

? ? allowed();

}


? ?正確的使用注釋:

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

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

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

??????????var? count = 10;

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

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

????// 改變這個(gè)值可能會(huì)讓它變成青蛙

????????var? count = 10;

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



最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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

友情鏈接更多精彩內(nèi)容