<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在開發過程中,遵循標準的命名約定可以提高程式碼的可讀性並且程式碼更容易理解。下面就來看看 JavaScript 中命名約定的最佳實踐。
JavaScript 變數名稱是區分大小寫的,大寫和小寫字母是不同的。比如:
let DogName = 'Scooby-Doo'; let dogName = 'Droopy'; let DOGNAME = 'Odie'; console.log(DogName); // "Scooby-Doo" console.log(dogName); // "Droopy" console.log(DOGNAME); // "Odie"
但是,最推薦的宣告 JavaScript 變數的方法是使用駝峰式變數名。我們可以對JavaScript 所有型別的變數使用駝峰式命名約定,這樣就不會相同命名的變數。
// bad let dogname = 'Droopy'; // bad let dog_name = 'Droopy'; // bad let DOGNAME = 'Droopy'; // bad let DOG_NAME = 'Droopy'; // good let dogName = 'Droopy';
變數的名稱應該是不言自明的,並描述了儲存的值。例如,如果需要一個變數來儲存狗的名字,應該使用 dogName 而不是 Name,因為 dogNam 更有意義:
// bad let d = 'Droopy'; // bad let name = 'Droopy'; // good let dogName = 'Droopy';
當定義布林型別的變數時,應該使用is或者has作為變數的字首。例如,如果需要一個變數來檢查狗是否有主任,應該使用 hasOwner 來最為變數名:
// bad let bark = false; // good let isBark = false; // bad let ideal = true; // good let areIdeal = true; // bad let owner = true; // good let hasOwner = true;
JavaScript 中函數的名稱也是區分大小寫的。因為在宣告函數時,推薦使用駝峰式方法來命名函數。
除此之外,推薦使用描述性名詞和動詞來作為字首。例如,如果宣告一個函數來獲取名稱,則函數名字應該是 getName:
// bad function name(dogName, ownerName) { return '${dogName} ${ownerName}'; } // good function getName(dogName, ownerName) { return '${dogName} ${ownerName}'; }
JavaScript 中的常數和變數是一樣的,都區分大小寫,在定義常數時,推薦使用大寫,因為它們是不變的變數。
const LEG = 4; const TAIL = 1; const MOVABLE = LEG + TAIL;
如果變數宣告名稱中包含多個單詞,就應該使用 UPPER_SNAKE_CASE。
const DAYS_UNTIL_TOMORROW = 1;
JavaScript 中類的命名約定規則與函數非常相似,推薦使用描述性的名稱來描述類的功能。
函數名和類名之間的主要區別在於類名要使用大寫開頭:
class DogCartoon { constructor(dogName, ownerName) { this.dogName = dogName; this.ownerName = ownerName; } } const cartoon = new DogCartoon('Scooby-Doo', 'Shaggy');
JavaScript 元件廣泛應用於React、Vue等前端框架中。元件的命名建議與類保持一致,使用開頭大寫的駝峰式命名法:
// bad function dogCartoon(roles) { return ( <div> <span> Dog Name: { roles.dogName } </span> <span> Owner Name: { roles.ownerName } </span> </div> ); } // good function DogCartoon(roles) { return ( <div> <span> Dog Name: { roles.dogName } </span> <span> Owner Name: { roles.ownerName } </span> </div> ); }
由於元件的命名開頭字母是大寫,因此在使用時,就很容易和HTML、屬性值等區分開來:
<div> <DogCartoon roles={{ dogName: 'Scooby-Doo', ownerName: 'Shaggy' }} /> </div>
這裡說的方法指的是類中方法,在 JavaScript 中,類的方法和函數的結構是非常類似的,因此,命名約定規則也是一樣的。
推薦需要使用駝峰式方法來宣告 JavaScript 方法,並使用動詞作為字首,使方法名稱更有意義:
class DogCartoon { constructor(dogName, ownerName) { this.dogName = dogName; this.ownerName = ownerName; } getName() { return '${this.dogName} ${this.ownerName}'; } } const cartoon= new DogCartoon('Scooby-Doo', 'Shaggy'); console.log(cartoon.getName()); // "Scooby-Doo Shaggy"
下劃線 (_) 在 MySQL 和 PHP 等語言中廣泛用於定義變數、函數和方法。但在 JavaScript 中,下劃線用於表示私有變數或函數。
例如,有一個私有函數名 toonName,則可以通過新增下劃線作為字首 (_toonName) 來將其表示為私有函數。
class DogCartoon { constructor(dogName, ownerName) { this.dogName = dogName; this.ownerName = ownerName; this.name = _toonName(dogName, ownerName); } _toonName(dogName, ownerName) { return `${dogName} ${ownerName}`; } } const cartoon = new DodCartoon('Scooby-Doo', 'Shaggy'); // good const name = cartoon.name; console.log(name); // "Scooby-Doo Shaggy" // bad name =cartoon._toonName(cartoon.dogName, cartoon.ownerName); console.log(name); // "Scooby-Doo Shaggy"
對於 JavaScript 全域性變數,沒有特定的命名標準。建議對可變全域性變數使用駝峰式大小寫的方式,對不可變全域性物件使用大寫。
大多數 Web 伺服器(Apache、Unix)在處理檔案時都區分大小寫。例如,flower.jpg 和 Flower.jpg 是不一樣的。
但是,如果從不區分大小寫的伺服器切換到區分大小寫的伺服器,即使是一個小錯誤也可能導致網站崩潰。
因此,儘管它們是支援區分大小寫的,建議在所有伺服器中還是使用小寫來命名檔案。
同時應用所有規則,我們得到如下函數:
function getAccountsTotalBalance(accounts) { let totalBalance = 0; for (let accountIndex = 0; accountIndex < accounts.length; accountIndex++) { totalBalance += accounts[accountIndex].balance; } return totalBalance; }
雖然accountIndex與i可能存在爭議,但函數的其餘部分應該更清楚。getAccountsTotalBalance完全傳達了函數的意圖,字首get表示它不會導致任何突變。為了讀者的利益,程式碼作者投入更多的精力是值得的。6個月後,當他們維護程式碼時,你未來的自己會感激他們所做的額外工作。
如果擔心行長度,可以考慮使用Prettier之類的工具來自動格式化程式碼。
到此這篇關於JavaScript命名約定的文章就介紹到這了,更多相關JavaScript命名約定內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45