国产一区二区精品-国产一区二区精品久-国产一区二区精品久久-国产一区二区精品久久91-免费毛片播放-免费毛片基地

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > 深入理解JS枚舉類型enum

深入理解JS枚舉類型enum

來(lái)源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-11-23 08:20:01 1700698801

一、枚舉類型enum用法

枚舉類型是一種常見(jiàn)的數(shù)據(jù)類型,它將一組有限的常量定義為一種新的數(shù)據(jù)類型。在JS中,我們可以使用對(duì)象或者Symbol來(lái)模擬枚舉類型。其中,對(duì)象的方法通常使用枚舉類型,枚舉類型中的成員是只讀的且不可更改。


// 創(chuàng)建一個(gè)對(duì)象用于存儲(chǔ)顏色
const Colors = {
  Red: 0,
  Green: 1,
  Blue: 2
};

console.log(Colors.Red); // 輸出: 0
console.log(Colors.Green); // 輸出: 1
console.log(Colors.Blue); // 輸出: 2

上面的代碼創(chuàng)建了一個(gè)Colors對(duì)象,它包含了三個(gè)成員:Red,Green和Blue。每個(gè)成員都代表了一個(gè)不同的數(shù)字,我們可以通過(guò)訪問(wèn)它們來(lái)引用它們所代表的數(shù)字(也可以稱之為枚舉值)。

二、枚舉類型enum用法舉例

假設(shè)我們需要定義一個(gè)星期幾的枚舉類型,我們可以如下定義:


// 定義星期枚舉類型
const WeekDays = {
  Sunday: '星期日',
  Monday: '星期一',
  Tuesday: '星期二',
  Wednesday: '星期三',
  Thursday: '星期四',
  Friday: '星期五',
  Saturday: '星期六'
};

// 使用
console.log(WeekDays.Sunday); // 輸出: 星期日
console.log(WeekDays.Friday); // 輸出: 星期五

在上面的代碼中,我們創(chuàng)建了一個(gè)WeekDays對(duì)象,它包含了七個(gè)成員,每個(gè)成員對(duì)應(yīng)著星期一到星期日的名稱。我們可以直接使用對(duì)象來(lái)獲取對(duì)應(yīng)的枚舉值。

三、JS枚舉類型set用法

除了使用對(duì)象或者Symbol來(lái)模擬枚舉類型,我們還可以使用ES6提供的Set來(lái)實(shí)現(xiàn)枚舉類型的功能。Set是一種集合類型,它允許我們存儲(chǔ)任意類型的唯一值。因此,我們可以將枚舉類型的成員作為Set中的值來(lái)使用。


// 創(chuàng)建一個(gè)星期枚舉類型的Set
const WeekDays = new Set([
  '星期一',
  '星期二',
  '星期三',
  '星期四',
  '星期五',
  '星期六',
  '星期日'
]);

// 使用
WeekDays.forEach(day => console.log(day)); 

// 輸出:
// 星期一
// 星期二
// 星期三
// 星期四
// 星期五
// 星期六
// 星期日

上面的代碼中,我們使用Set來(lái)創(chuàng)建了一個(gè)存儲(chǔ)星期枚舉類型的集合。我們可以使用forEach來(lái)遍歷這個(gè)集合并輸出其中的元素。

四、枚舉類型enum用法取下標(biāo)

在上述枚舉類型的定義中,我們將星期的名稱作為枚舉值來(lái)使用。假如需要返回這個(gè)枚舉值在集合中的下標(biāo),我們可以使用Object.values方法來(lái)獲取對(duì)象中的所有枚舉值:


const WeekDays = {
  Monday: '星期一',
  Tuesday: '星期二',
  Wednesday: '星期三',
  Thursday: '星期四',
  Friday: '星期五',
  Saturday: '星期六',
  Sunday: '星期日',
};

const weekDaysArray = Object.values(WeekDays);
console.log(weekDaysArray.indexOf('星期四')); // 輸出: 3

在這段代碼中,我們使用Object.values方法獲取WeekDays對(duì)象中的枚舉值,并將它們存儲(chǔ)到一個(gè)數(shù)組中。然后,我們可以使用數(shù)組的indexOf方法來(lái)查找特定枚舉值所在的下標(biāo)。

五、結(jié)語(yǔ)

JS枚舉類型的應(yīng)用在實(shí)際開(kāi)發(fā)中經(jīng)常使用,它可以使代碼更加清晰易懂,并保證代碼在不同環(huán)境中的正確性和一致性。我們可以使用對(duì)象、Symbol或者Set來(lái)實(shí)現(xiàn)JS枚舉類型,具體選擇哪種方法,需要視情況而定。希望本文可以幫助讀者更深入理解JS枚舉類型。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
詳解Tomcat查看版本方法

Tomcat是一個(gè)開(kāi)源的Web應(yīng)用服務(wù)器,由Apache軟件基金會(huì)發(fā)起和維護(hù)。作為一個(gè)常用的服務(wù)器,了解Tomcat的版本信息顯得尤為重要,因?yàn)樗苯佑绊?..詳情>>

2023-11-23 10:29:38
如何在Mac上安裝Java8

Java是一種面向?qū)ο蟮木幊陶Z(yǔ)言,以其平臺(tái)無(wú)關(guān)性和代碼可重用性而聞名。它被廣泛用于企業(yè)級(jí)應(yīng)用程序、游戲開(kāi)發(fā)和移動(dòng)應(yīng)用程序開(kāi)發(fā)。在本文中,我...詳情>>

2023-11-23 10:26:02
axios body傳參詳解

在前端開(kāi)發(fā)中,我們經(jīng)常與后臺(tái)進(jìn)行數(shù)據(jù)交互,其中一個(gè)很重要的環(huán)節(jié)就是數(shù)據(jù)傳參。而axios是目前非常優(yōu)秀的一款前端HTTP請(qǐng)求庫(kù),它可以輕松實(shí)現(xiàn)...詳情>>

2023-11-23 10:18:50
uniapp撥打電話完全指南

一、uniapp撥打電話實(shí)時(shí)錄音當(dāng)你在uniapp中開(kāi)發(fā)一個(gè)撥打電話的功能時(shí),你可能會(huì)遇到需要實(shí)時(shí)錄音的情況。這就需要你使用uniapp自帶的API:uni.s...詳情>>

2023-11-23 09:46:26
對(duì)idea字體設(shè)置的詳細(xì)闡述

一、idea字體設(shè)置推薦在idea中,字體和字號(hào)的設(shè)置非常重要。一般來(lái)說(shuō),我們需要為每個(gè)組件設(shè)置不同的字體和字號(hào),以確保閱讀和編輯時(shí)的舒適度。...詳情>>

2023-11-23 09:42:50