成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

聊聊JavaScript 命名約定優(yōu)秀實踐

開發(fā) 前端
在開發(fā)過程中,遵循標(biāo)準(zhǔn)的命名約定可以提高代碼的可讀性。下面就來看看 JavaScript 中命名約定的最佳實踐。

在開發(fā)過程中,遵循標(biāo)準(zhǔn)的命名約定可以提高代碼的可讀性。下面就來看看 JavaScript 中命名約定的最佳實踐。

1. 變量的命名約定

JavaScript 變量名稱是區(qū)分大小寫的,大寫和小寫字母是不同的。比如:

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';

變量的名稱應(yīng)該是不言自明的,并描述了儲存的值。例如,如果需要一個變量來儲存狗的名字,應(yīng)該使用 dogName 而不是 Name,因為 dogNam 更有意義:

// bad
let d = 'Droopy';
// bad
let name = 'Droopy';
// good
let dogName = 'Droopy';

2. 布爾值的命名約定

當(dāng)定義布爾類型的變量時,應(yīng)該使用is或者has作為變量的前綴。例如,如果需要一個變量來檢查狗是否有主人,應(yīng)該使用 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;

3. 函數(shù)的命名約定

JavaScript 中函數(shù)的名稱也是區(qū)分大小寫的。因為在聲明函數(shù)時,推薦使用駝峰式方法來命名函數(shù)。

除此之外,推薦使用描述性名詞和動詞來作為前綴。例如,如果聲明一個函數(shù)來獲取名稱,則函數(shù)名字應(yīng)該是 getName:

// bad
function name(dogName, ownerName) {
return '${dogName} ${ownerName}';
}

// good
function getName(dogName, ownerName) {
return '${dogName} ${ownerName}';
}

4. 常量的命名約定

JavaScript 中的常量和變量是一樣的,都區(qū)分大小寫,在定義常量時,推薦使用大寫,因為它們是不變的變量。

const LEG = 4;
const TAIL = 1;
const MOVABLE = LEG + TAIL;

如果變量聲明名稱中包含多個單詞,就應(yīng)該使用 UPPER_SNAKE_CASE。


const DAYS_UNTIL_TOMORROW = 1;

5. 類的命名約定

JavaScript 中類的命名約定規(guī)則與函數(shù)非常相似,推薦使用描述性的名稱來描述類的功能。

函數(shù)名和類名之間的主要區(qū)別在于類名要使用大寫開頭:

class DogCartoon { 
constructor(dogName, ownerName) {
this.dogName = dogName;
this.ownerName = ownerName;
}
}

const cartoon = new DogCartoon('Scooby-Doo', 'Shaggy');

6. 組件的命名規(guī)則

JavaScript 組件廣泛應(yīng)用于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、屬性值等區(qū)分開來:

<div> 
<DogCartoon
roles={{ dogName: 'Scooby-Doo', ownerName: 'Shaggy' }}
/>
</div>

7. 方法的命名約定

這里說的方法指的是類中方法,在 JavaScript 中,類的方法和函數(shù)的結(jié)構(gòu)是非常類似的,因此,命名約定規(guī)則也是一樣的。

推薦需要使用駝峰式方法來聲明 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"

8. 私有函數(shù)的命名約定

下劃線 (_) 在 MySQL 和 PHP 等語言中廣泛用于定義變量、函數(shù)和方法。但在 JavaScript 中,下劃線用于表示私有變量或函數(shù)。

例如,有一個私有函數(shù)名 toonName,則可以通過添加下劃線作為前綴 (_toonName) 來將其表示為私有函數(shù)。

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"

9. 全局變量的命名約定

對于 JavaScript 全局變量,沒有特定的命名標(biāo)準(zhǔn)。建議對可變?nèi)肿兞渴褂民劮迨酱笮懙姆绞?,對不可變?nèi)謱ο笫褂么髮憽?/p>

10. 文件名的命名約定

大多數(shù) Web 服務(wù)器(Apache、Unix)在處理文件時都區(qū)分大小寫。例如,flower.jpg 和 Flower.jpg 是不一樣的。

但是,如果從不區(qū)分大小寫的服務(wù)器切換到區(qū)分大小寫的服務(wù)器,即使是一個小錯誤也可能導(dǎo)致網(wǎng)站崩潰。

因此,盡管它們是支持區(qū)分大小寫的,建議在所有服務(wù)器中還是使用小寫來命名文件。

責(zé)任編輯:姜華 來源: 前端充電寶
相關(guān)推薦

2024-04-11 10:20:57

JavaScript前端Web

2022-02-14 14:34:10

Next.js路由系統(tǒng)

2022-07-12 08:00:31

命令Kubernetes應(yīng)用程序

2020-04-30 21:30:18

JavaScript前端技術(shù)

2009-12-16 16:24:00

Ruby on Rai

2023-08-07 08:52:53

Vue組件Props 命名

2009-08-19 15:24:30

.NET命名規(guī)范

2023-02-14 10:37:43

API端點版本

2021-05-26 08:50:37

JavaScript代碼重構(gòu)函數(shù)

2024-05-31 08:30:23

2023-10-10 10:57:12

JavaScript代碼優(yōu)化

2022-11-28 23:48:06

JavaScript編程語言技巧

2020-11-18 09:44:49

Java命名約定

2010-03-05 11:53:20

Python命名約定

2023-04-07 07:14:34

2009-11-10 15:36:24

VB.NET命名約定

2024-03-11 10:21:53

.NET9調(diào)用FCall

2020-02-25 15:27:37

JavaScriptTypeScript瀏覽器

2009-04-12 09:11:03

Symbian諾基亞移動OS

2009-04-12 09:13:51

Symbian諾基亞移動OS
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: www国产成人免费观看视频,深夜成人网 | 97精品久久 | 在线观看成人免费视频 | 成人国产在线观看 | 亚洲男女视频在线观看 | 久久久久久久久久久国产 | 三级黄视频在线观看 | 久久精品亚洲国产奇米99 | 久久中文字幕av | 91精品久久久久久久久久入口 | 91在线精品一区二区 | 国产精品久久久久影院色老大 | 欧美精品一区二区在线观看 | 91新视频| 精品伊人 | 99视频免费看 | 欧美日韩亚 | 欧美一区视频 | 97在线超碰 | 国产激情自拍视频 | 亚洲精品精品 | 中文字幕在线视频网站 | 福利网址 | 久久精品国产99国产精品 | 亚洲精品成人 | 999久久久国产精品 欧美成人h版在线观看 | 亚洲视频在线观看 | 国产成人高清成人av片在线看 | avav在线看| 亚洲精品黄色 | 婷婷精品| 毛片一区二区三区 | 国产精品资源在线 | 欧美激情第一区 | 在线 丝袜 欧美 日韩 制服 | 亚洲精品电影网在线观看 | 天堂在线www| 成人综合一区二区 | 最新av在线网址 | 999www视频免费观看 | 欧美日韩在线免费 |