詳解JavaScript中的變量命名規(guī)范
駝峰命名
首先,和其他語(yǔ)言一樣,大部分變量建議采用駝峰命名法。
var articleTitle = 'javascript變量命名規(guī)范'
而對(duì)于常量,使用大寫字母和下劃線來(lái)組合命名。
const COUNTRY_NAME = 'China'
根據(jù)變量類型來(lái)命名
普通變量/屬性
盡量用簡(jiǎn)單易懂的 名詞 結(jié)尾,前面可以加 形容詞/名詞 來(lái)修飾。
var person = {
name: 'Frank'
}
var student = {
grade: 3,
class: 2
}
var juniorSchoolStudent = {}布爾變量/屬性
一般用 形容詞、be動(dòng)詞 、情態(tài)動(dòng)詞、has 開(kāi)頭
var person = {
alive: false, // 如果是形容詞,前面就沒(méi)必要加is,比如isAlive就顯得冗余
canSpeak: true, //情態(tài)動(dòng)詞有can、should、will、need等,情態(tài)動(dòng)詞后面接動(dòng)詞
isVip: true, // be動(dòng)詞有is、was等,后面一般接名詞
hasChildren: true, // has加名詞
}控制元素的顯示隱藏、是否加載的時(shí)候,可以用 show、hide、load 開(kāi)頭
var dialog = {
showTitle: true, // 又例如vue框架中,v-show="showTitle"
hideHeader: false, // 又例如angular框架中,ng-hide="hideHeader"
loadFooter: true, // 又例如vue框架中,v-if="loadFooter"
}普通函數(shù)/方法
一般用 動(dòng)詞 開(kāi)頭。如果是及物動(dòng)詞后面可以加名詞,組成 動(dòng)賓結(jié)構(gòu)。
var person = {
run(){}, // 不及物動(dòng)詞
drinkWater(){}, // 及物動(dòng)詞
eat(foo){}, // 及物動(dòng)詞加參數(shù)(參數(shù)是名詞)
}名稱也可以體現(xiàn)參數(shù):
document.getElementById('domId')
function findArticleByName(articleName) {}回調(diào)、鉤子函數(shù)
用 介詞 開(kāi)頭,或用 動(dòng)詞的現(xiàn)在完成時(shí)態(tài)
button.addEventListener('click', onButtonClick)
var component = {
beforeCreate(){},
created(){},
beforeMount(){},
mounted(){},
beforeUpdate(){},
updated(){},
activated(){},
deactivated(){},
beforeDestroy(){},
destroyed(){}
}類
類名/構(gòu)造函數(shù)的名稱,要采用Pascal命名法(即駝峰命名法+首字母大寫)。
class MyArticle {}
function Person (name) {
this.name = name
}私有屬性和方法的前綴加下劃線_, 公共屬性和方法則不用
class Person {
// 私有屬性
_name;
// 公共方法
getName() {
return this._name;
}
// 公共方法
setName(name) {
this._name = name;
}
}注意一致性
介詞一致性
例如在上述鉤子函數(shù)的命名規(guī)范中,
- 如果你使用了 before + after,那么就在代碼的所有地方都堅(jiān)持使用;
- 如果你使用了 before + 完成時(shí),那么就堅(jiān)持使用;
- 如果你改來(lái)改去,就 不一致 了,不一致將導(dǎo)致 不可預(yù)測(cè)。
再例如使用了 onButtonClick,就不要在其他地方使用 handleButtonClick。
順序一致性
比如同時(shí)命名了兩個(gè)變量: updateContainerWidth 和 updateHeightOfContainer ,
這個(gè)順序就令人很別扭,同樣會(huì)引發(fā) 不可預(yù)測(cè)
表里一致性
函數(shù)名應(yīng)盡可能完美體現(xiàn)函數(shù)的功能,既不能多也不能少。
比如
function getSongs(){
return $.get('/songs).then((response){
div.innerText = response.songs
})
}就違背了表里一致性,getSongs 表示獲取歌曲,并沒(méi)有暗示這個(gè)函數(shù)會(huì)更新頁(yè)面,但是實(shí)際上函數(shù)更新了 div,這就是表里不一,正確的寫法是
要么糾正函數(shù)名
function getSongsAndUpdateDiv(){
return $.get('/songs).then((response){
div.innerText = response.songs
})
}要么寫成兩個(gè)函數(shù)
function getSongs(){
return $.get('/songs)
}
function updateDiv(songs){
div.innerText = response.songs
}
getSongs().then((response)=>{
updateDiv(response.songs)
})時(shí)間一致性
有可能隨著代碼的變遷,一個(gè)變量的含義已經(jīng)不同于它一開(kāi)始的含義了,這時(shí)就需要及時(shí)改掉這個(gè)變量的名字。
這一條是最難做到的,因?yàn)閷懘a容易,改代碼難。如果這個(gè)代碼組織得不好,很可能會(huì)出現(xiàn)牽一發(fā)而動(dòng)全身的情況(如全局變量就很難改)。
所以最好的做法,就是一開(kāi)始就做好規(guī)劃、并且按照規(guī)范來(lái)組織代碼。
其他注意事項(xiàng)
避免使用不常用的縮寫
除了一些常用的所有程序員都知道的縮寫(例如 num、html),建議不要使用縮寫。
比如
- password 不要縮寫為 psw,
- table 不要縮寫為 tb、tbl
- current 不要縮寫為 cur
更不要使用拼音首字母縮寫。
比如
- 萬(wàn)元戶 不要縮寫為 wyh
- 中資公司 不要縮寫為 zzgs
這些縮寫其實(shí)沒(méi)少幾個(gè)字符,卻讓看代碼的人增加了很多理解的負(fù)擔(dān)。
避免使用容易混淆的字母和數(shù)字
比如
- 同時(shí)用 l 和 1: level1
- 同時(shí)用 O 和 0: 0Option
避免變量命名過(guò)于抽象
比如
var flag = false; // 可以改成更有實(shí)際含義的 isValid、 hasPermission
var obj = {}; // 可以改成更有實(shí)際含義的 currentTask、 newItem到此這篇關(guān)于詳解JavaScript中的變量命名規(guī)范的文章就介紹到這了,更多相關(guān)JavaScript變量命名規(guī)范內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Javascript Object 對(duì)象學(xué)習(xí)筆記
這篇文章主要介紹了Javascript Object 對(duì)象學(xué)習(xí)筆記,需要的朋友可以參考下2014-12-12
JavaScript基礎(chǔ)知識(shí)點(diǎn)歸納(推薦)
下面小編就為大家?guī)?lái)一篇JavaScript基礎(chǔ)知識(shí)點(diǎn)歸納(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-07-07
JavaScript簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
JavaScript是一種基于對(duì)象(Object)和事件驅(qū)動(dòng)(EventDriven)并具有安全性能的腳本語(yǔ)言,javascript的出現(xiàn)使得網(wǎng)頁(yè)和用戶之間實(shí)現(xiàn)了一種實(shí)時(shí)性的,動(dòng)態(tài)性的,交互性的關(guān)系,使網(wǎng)頁(yè)包含更多活躍的元素和更加精彩的內(nèi)容2017-06-06
javascript學(xué)習(xí)筆記(六) Date 日期類型
javascript學(xué)習(xí)筆記之Date 日期類型介紹,需要的朋友可以參考下2012-06-06
JS不用正則驗(yàn)證輸入的字符串是否為空(包含空格)的實(shí)現(xiàn)代碼
下面小編就為大家?guī)?lái)一篇JS不用正則驗(yàn)證輸入的字符串是否為空(包含空格)的實(shí)現(xiàn)代碼。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06
javascript 數(shù)組學(xué)習(xí)資料收集
由于javascript 數(shù)組應(yīng)用比較廣泛,使用的朋友越來(lái)越多,腳本之家特為大家整理了一些js 數(shù)據(jù)方面的學(xué)習(xí)資料,大家看完了,基本上應(yīng)該對(duì)數(shù)組有個(gè)理解了。2010-04-04

