最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript命名約定的最佳實(shí)踐指南

 更新時(shí)間:2022年03月19日 11:58:02   作者:CUGGZ  
js命名應(yīng)遵循簡(jiǎn)潔、語(yǔ)義化的原則,下面這篇文章主要給大家介紹了關(guān)于JavaScript命名約定的最佳實(shí)踐指南,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

在開(kāi)發(fā)過(guò)程中,遵循標(biāo)準(zhǔn)的命名約定可以提高代碼的可讀性并且代碼更容易理解。下面就來(lái)看看 JavaScript 中命名約定的最佳實(shí)踐。

1. 變量的命名約定

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

let DogName = 'Scooby-Doo';
let dogName = 'Droopy';
let DOGNAME = 'Odie';
console.log(DogName);   // "Scooby-Doo"
console.log(dogName);   // "Droopy"
console.log(DOGNAME);   // "Odie"

但是,最推薦的聲明 JavaScript 變量的方法是使用駝峰式變量名。我們可以對(duì)JavaScript 所有類(lèi)型的變量使用駝峰式命名約定,這樣就不會(huì)相同命名的變量。

// bad
let dogname = 'Droopy'; 
// bad
let dog_name = 'Droopy'; 
// bad
let DOGNAME = 'Droopy'; 
// bad
let DOG_NAME = 'Droopy'; 
// good
let dogName = 'Droopy';

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

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

2. 布爾值的命名約定

當(dāng)定義布爾類(lèi)型的變量時(shí),應(yīng)該使用is或者h(yuǎn)as作為變量的前綴。例如,如果需要一個(gè)變量來(lái)檢查狗是否有主任,應(yīng)該使用 hasOwner 來(lái)最為變量名:

// 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ù)的名稱(chēng)也是區(qū)分大小寫(xiě)的。因?yàn)樵诼暶骱瘮?shù)時(shí),推薦使用駝峰式方法來(lái)命名函數(shù)。 ?

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

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

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

4. 常量的命名約定

JavaScript 中的常量和變量是一樣的,都區(qū)分大小寫(xiě),在定義常量時(shí),推薦使用大寫(xiě),因?yàn)樗鼈兪遣蛔兊淖兞俊?/p>

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

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

const DAYS_UNTIL_TOMORROW = 1;

5. 類(lèi)的命名約定

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

函數(shù)名和類(lèi)名之間的主要區(qū)別在于類(lèi)名要使用大寫(xiě)開(kāi)頭:

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等前端框架中。組件的命名建議與類(lèi)保持一致,使用開(kāi)頭大寫(xiě)的駝峰式命名法:

// 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> 
  );
}

由于組件的命名開(kāi)頭字母是大寫(xiě),因此在使用時(shí),就很容易和HTML、屬性值等區(qū)分開(kāi)來(lái):

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

7. 方法的命名約定

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

推薦需要使用駝峰式方法來(lái)聲明 JavaScript 方法,并使用動(dòng)詞作為前綴,使方法名稱(chēng)更有意義:

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 等語(yǔ)言中廣泛用于定義變量、函數(shù)和方法。但在 JavaScript 中,下劃線用于表示私有變量或函數(shù)。 ?

例如,有一個(gè)私有函數(shù)名 toonName,則可以通過(guò)添加下劃線作為前綴 (_toonName) 來(lái)將其表示為私有函數(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. 全局變量的命名約定

對(duì)于 JavaScript 全局變量,沒(méi)有特定的命名標(biāo)準(zhǔn)。建議對(duì)可變?nèi)肿兞渴褂民劮迨酱笮?xiě)的方式,對(duì)不可變?nèi)謱?duì)象使用大寫(xiě)。

10. 文件名的命名約定

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

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

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

附:正確案例

同時(shí)應(yīng)用所有規(guī)則,我們得到如下函數(shù):

function getAccountsTotalBalance(accounts) {
  let totalBalance = 0;
  for (let accountIndex = 0; accountIndex < accounts.length; accountIndex++) {
    totalBalance += accounts[accountIndex].balance;
  }

  return totalBalance;
}

雖然accountIndex與i可能存在爭(zhēng)議,但函數(shù)的其余部分應(yīng)該更清楚。getAccountsTotalBalance完全傳達(dá)了函數(shù)的意圖,前綴get表示它不會(huì)導(dǎo)致任何突變。為了讀者的利益,代碼作者投入更多的精力是值得的。6個(gè)月后,當(dāng)他們維護(hù)代碼時(shí),你未來(lái)的自己會(huì)感激他們所做的額外工作。

如果擔(dān)心行長(zhǎng)度,可以考慮使用Prettier之類(lèi)的工具來(lái)自動(dòng)格式化代碼。

總結(jié)

到此這篇關(guān)于JavaScript命名約定的文章就介紹到這了,更多相關(guān)JavaScript命名約定內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JavaScript判斷密碼強(qiáng)度(自寫(xiě)代碼)

    JavaScript判斷密碼強(qiáng)度(自寫(xiě)代碼)

    網(wǎng)站注冊(cè)的時(shí)候經(jīng)??梢钥吹矫艽a強(qiáng)度提示,今天自己做了一個(gè)JS密碼強(qiáng)度判斷,具體實(shí)現(xiàn)如下,喜歡的朋友可以學(xué)習(xí)下
    2013-09-09
  • 一次記住JavaScript的6個(gè)正則表達(dá)式方法

    一次記住JavaScript的6個(gè)正則表達(dá)式方法

    這篇文章主要介紹了一次記住JavaScript的6個(gè)正則表達(dá)式方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • 微信小程序?qū)崿F(xiàn)通過(guò)js操作wxml的wxss屬性示例

    微信小程序?qū)崿F(xiàn)通過(guò)js操作wxml的wxss屬性示例

    這篇文章主要介紹了微信小程序?qū)崿F(xiàn)通過(guò)js操作wxml的wxss屬性,結(jié)合實(shí)例形式分析了微信小程序使用js操作wxml的wxss屬性相關(guān)原理、實(shí)現(xiàn)技巧與操作注意事項(xiàng),需要的朋友可以參考下
    2018-12-12
  • typescript枚舉的具體使用

    typescript枚舉的具體使用

    使用枚舉我們可以定義一些帶名字的常量,本文主要介紹了typescript枚舉的具體使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • require.js中的define函數(shù)詳解

    require.js中的define函數(shù)詳解

    這篇文章主要給大家介紹了關(guān)于require.js中define函數(shù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用require.js中的define函數(shù)具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-07-07
  • p5.js入門(mén)教程之鼠標(biāo)交互的示例

    p5.js入門(mén)教程之鼠標(biāo)交互的示例

    這篇文章主要介紹了p5.js入門(mén)教程之鼠標(biāo)交互的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • javascript實(shí)現(xiàn)列表滾動(dòng)的方法

    javascript實(shí)現(xiàn)列表滾動(dòng)的方法

    這篇文章主要介紹了javascript實(shí)現(xiàn)列表滾動(dòng)的方法,較為詳細(xì)的分析了javascript實(shí)現(xiàn)列表滾動(dòng)的頁(yè)面布局及javascript滾動(dòng)效果的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • 解決JS無(wú)法調(diào)用Controller問(wèn)題的方法

    解決JS無(wú)法調(diào)用Controller問(wèn)題的方法

    這篇文章主要介紹了解決JS無(wú)法調(diào)用Controller問(wèn)題的方法,需要的朋友可以參考下
    2015-12-12
  • JavaScript接口防止重復(fù)請(qǐng)求的方法總結(jié)

    JavaScript接口防止重復(fù)請(qǐng)求的方法總結(jié)

    在前端開(kāi)發(fā)中,防止重復(fù)請(qǐng)求是一個(gè)常見(jiàn)的問(wèn)題,重復(fù)請(qǐng)求不僅會(huì)增加服務(wù)器的負(fù)載,還可能導(dǎo)致數(shù)據(jù)不一致等問(wèn)題,本文為大家整理了一些常用的解決方法,需要的可以參考下
    2024-12-12
  • JS+CSS實(shí)現(xiàn)可拖拽的漂亮圓角特效彈出層完整實(shí)例

    JS+CSS實(shí)現(xiàn)可拖拽的漂亮圓角特效彈出層完整實(shí)例

    這篇文章主要介紹了JS+CSS實(shí)現(xiàn)可拖拽的漂亮圓角特效彈出層,以完整實(shí)例形式分析了彈出層特效及圓角矩形的實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2015-02-02

最新評(píng)論

稷山县| 乌兰浩特市| 博兴县| 霍林郭勒市| 宜兴市| 保康县| 博白县| 桂阳县| 利辛县| 大渡口区| 保靖县| 香格里拉县| 寻甸| 天水市| 鸡东县| 广宗县| 孟连| 佛山市| 区。| 大埔区| 会宁县| 上思县| 沁源县| 五寨县| 巧家县| 曲阳县| 青神县| 辉南县| 舟曲县| 香河县| 鄂温| 大埔区| 红河县| 屏南县| 南投县| 凭祥市| 秭归县| 福贡县| 邓州市| 新蔡县| 芜湖县|