国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ES6 中 Symbol 怎么用?示例詳解

這篇具有很好參考價值的文章主要介紹了ES6 中 Symbol 怎么用?示例詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

還是大劍師蘭特:曾是美國某知名大學(xué)計(jì)算機(jī)專業(yè)研究生,現(xiàn)為航空航海領(lǐng)域高級前端工程師;CSDN知名博主,GIS領(lǐng)域優(yōu)質(zhì)創(chuàng)作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,echarts等技術(shù)開發(fā),歡迎加底部微信(gis-dajianshi),一起交流。

ES6 中 Symbol 怎么用?示例詳解,# Javascript理論與實(shí)踐,es6,ecmascript,大劍師,symbol

No. 內(nèi)容鏈接
1 Openlayers 【入門教程】 - 【源代碼+示例300+】
2 Leaflet 【入門教程】 - 【源代碼+圖文示例 150+】
3 Cesium 【入門教程】 - 【源代碼+圖文示例200+】
4 MapboxGL【入門教程】 - 【源代碼+圖文示例150+】
5 前端就業(yè)寶典 【面試題+詳細(xì)答案 1000+】

ES6 中 Symbol 怎么用?示例詳解,# Javascript理論與實(shí)踐,es6,ecmascript,大劍師,symbol


ES6 中 Symbol 怎么用?示例詳解,# Javascript理論與實(shí)踐,es6,ecmascript,大劍師,symbol

一、ES6 Symbol 基本介紹

Symbol 是 ECMAScript 6 引入的一種新的原始數(shù)據(jù)類型,它是不可變且唯一的。 這意味著每次調(diào)用 Symbol() 函數(shù)都會創(chuàng)建一個獨(dú)一無二的值,即使傳入相同的描述符也是如此。

// 創(chuàng)建 Symbol
let sym1 = Symbol('description1'); // description1僅為描述信息,不影響符號的唯一性
let sym2 = Symbol('description1');
console.log(sym1 === sym2); // 輸出: false

// typeof檢查
console.log(typeof sym1); // 輸出: "symbol"

代碼示例:

// 創(chuàng)建Symbol
let id = Symbol();
let myObj = {};
myObj[id] = 'This is a unique value';
console.log(myObj[id]); // 輸出: "This is a unique value"

// 描述符
let symWithDesc = Symbol('description');
console.log(symWithDesc.description); // TypeError: Cannot read property 'description' of a non-object

// Symbol.keyFor() 方法查找已注冊的 Symbol 類型的鍵
let globalSym = Symbol.for('globalKey');
console.log(Symbol.keyFor(globalSym)); // 輸出: "globalKey"

// 注意,Symbol.for() 會查找全局 Symbol 注冊表,確保同一描述符的 Symbol 在全局范圍內(nèi)是唯一的
let anotherGlobalSym = Symbol.for('globalKey');
console.log(anotherGlobalSym === globalSym); // 輸出: true

二、使用場景

  1. 唯一標(biāo)識符:由于 Symbol 值的唯一性,常常被用來作為對象的唯一屬性名,防止屬性沖突。
let myPrivateProp = Symbol('private');
class MyClass {
  constructor(value) {
    this[myPrivateProp] = value;
  }

  get secretValue() {
    return this[myPrivateProp];
  }
}
  1. 模塊系統(tǒng):在某些模塊系統(tǒng)或庫中,Symbol 可用于創(chuàng)建私有或隱式接口。

  2. Map和Set鍵:Symbol 可以作為 Map 和 Set 的鍵,這樣就不會與其他數(shù)據(jù)類型的鍵產(chǎn)生沖突。

  3. 內(nèi)置 Symbol:ES6 提供了一些內(nèi)置的 Symbol 值,如 Symbol.iterator 用于對象的迭代器方法。

let arr = ['a', 'b', 'c'];
let iterator = arr[Symbol.iterator]();
console.log(iterator.next().value); // 輸出: 'a'

三、用途總結(jié)

Symbol 主要用于解決命名沖突的問題,特別是在編寫大型應(yīng)用或庫時,可以幫助開發(fā)者避免無意間覆蓋或訪問到對象的內(nèi)部屬性。同時,它也為 JavaScript 提供了一種實(shí)現(xiàn)私有屬性的間接途徑。文章來源地址http://www.zghlxwxcb.cn/news/detail-855723.html

到了這里,關(guān)于ES6 中 Symbol 怎么用?示例詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【JavaScript解析】ES6定義變量與箭頭函數(shù)詳解

    【JavaScript解析】ES6定義變量與箭頭函數(shù)詳解

    箭頭函數(shù)可以說是ES6的一大亮點(diǎn),使用箭頭函數(shù),可以簡化編碼過程,使代碼更加的簡潔 本文由千鋒前端老師獨(dú)家創(chuàng)作,主要給大家介紹了關(guān)于ES6中箭頭函數(shù)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),覺得有幫助的話可以【關(guān)注】持續(xù)追更~ 我們現(xiàn)在知道定義(聲明)一個變

    2024年02月05日
    瀏覽(28)
  • ES6類-繼承-Symbol-模版字符串

    ES6類-繼承-Symbol-模版字符串

    目錄 類 ?繼承 ES5 如何繼承 ES6繼承 Symbol 用途 可以產(chǎn)生唯一的值,獨(dú)一無二的值 解決命名沖突 getOwnPropertySymbols() ?作為全局注冊表 緩存 ?Symbol.for() ?消除魔術(shù)字符串 ?模版字符串 在javascript語言中,生成實(shí)例對象使用構(gòu)造函數(shù);ES6提供了類Class這個概念,作為對象的模板。定

    2024年02月16日
    瀏覽(21)
  • Vue報(bào)錯 Cannot find module ‘../../modules/es6.symbol‘解決辦法

    Vue報(bào)錯 Cannot find module ‘../../modules/es6.symbol‘解決辦法

    在進(jìn)行webpack打包的時候,會出現(xiàn)Cannot find module \\\'XXX’的錯誤,找不到某個模塊的錯誤,今天給出解決方法: 直接進(jìn)行npm install重新打包; 如果npm install重新打包之后,仍然出現(xiàn)這個問題,可以進(jìn)行刪除node_modules文件夾,同時清除緩存,如下命令: 如果以上方法依然不奏效,那

    2024年01月18日
    瀏覽(102)
  • JavaScript ES6實(shí)現(xiàn)繼承

    JavaScript ES6實(shí)現(xiàn)繼承

    1 對象的方法補(bǔ)充 2 原型繼承關(guān)系圖 3 class方式定義類 4 extends實(shí)現(xiàn)繼承 5 extends實(shí)現(xiàn)繼承 6 多態(tài)概念的理 function 創(chuàng)建的名稱如果開頭是大寫的,那這個創(chuàng)建的不是函數(shù),是創(chuàng)建了類。 可以把class創(chuàng)建的類當(dāng)做是function創(chuàng)建的類的一種語法糖。但是在直接使用的方面是有不同之處

    2024年02月16日
    瀏覽(26)
  • 【JavaScript】數(shù)組方法 (ES6)

    arr.find(callback) 用于獲取第 1 個符合要求的元素: callback : (item, index, arr) = boolean item -當(dāng)前值、 index -當(dāng)前索引、 arr -當(dāng)前數(shù)組 返回值: callback 第一次返回 true 的對應(yīng) item ;如果沒有符合的元素,則返回 undefined arr.findIndex(callback) 用于獲取第 1 個符合要求的元素的下標(biāo): cal

    2024年02月14日
    瀏覽(27)
  • JavaScript 之 ES6 新特性

    在ES6中,模塊化成為了JavaScript的標(biāo)準(zhǔn)特性。ES6模塊化提供了一種更加優(yōu)雅和可維護(hù)的方式來組織和管理JavaScript代碼,可以有效地避免全局變量的污染和命名沖突的問題。以下是ES6模塊化的一些主要特性: 導(dǎo)出(export): 可以通過 export 將一個變量、函數(shù)或類導(dǎo)出為一

    2024年02月07日
    瀏覽(26)
  • JavaScript Es6_3筆記

    了解構(gòu)造函數(shù)原型對象的語法特征,掌握 JavaScript 中面向?qū)ο缶幊痰膶?shí)現(xiàn)方式,基于面向?qū)ο缶幊趟枷雽?shí)現(xiàn) DOM 操作的封裝。 了解面向?qū)ο缶幊痰囊话闾卣?掌握基于構(gòu)造函數(shù)原型對象的邏輯封裝 掌握基于原型對象實(shí)現(xiàn)的繼承 理解什么原型鏈及其作用 能夠處理程序異常提升程

    2024年02月11日
    瀏覽(23)
  • JavaScript版本ES5/ES6及后續(xù)版本

    JavaScript版本ES5/ES6及后續(xù)版本

    Brendan Eich在短短10天內(nèi)創(chuàng)建了JavaScript的第一個版本。它被稱為摩卡,但已經(jīng)具備了現(xiàn)代JavaScript的許多基本特性! 為了吸引Java開發(fā)人員,Mocha先是更改為LiveScript,然后又更改為JavaScript然而,JavaScript與Java幾乎沒有任何關(guān)系; 微軟推出了IE,從網(wǎng)景復(fù)制JavaScript,并稱之為JScript; 由

    2024年02月13日
    瀏覽(33)
  • 【Javascript】ES6新增之類的認(rèn)識

    在現(xiàn)代編程語言中,類是面向?qū)ο缶幊谭妒街械暮诵母拍钪弧?與函數(shù)類似,類本質(zhì)上是一種特殊的函數(shù),它允許我們將數(shù)據(jù)和操作封裝在一起,以創(chuàng)建具有共同行為和狀態(tài)的對象。 在類的世界里,我們有類表達(dá)式和類聲明,它們各自具有自己的特性和用途。 ? 類本質(zhì)上是

    2024年02月13日
    瀏覽(25)
  • JavaScript之ES6高級語法(一)

    JavaScript之ES6高級語法(一)

    本文是我在學(xué)習(xí)過程中記錄學(xué)習(xí)的點(diǎn)點(diǎn)滴滴,目的是為了學(xué)完之后鞏固一下順便也和大家分享一下,日后忘記了也可以方便快速的復(fù)習(xí)。 今天學(xué)習(xí)的主要是關(guān)于ES6新語法知識的理解和應(yīng)用 棧負(fù)責(zé)存放簡單數(shù)據(jù)類型,堆負(fù)責(zé)存放復(fù)雜數(shù)據(jù)類型,但是復(fù)雜數(shù)據(jù)類型會把內(nèi)容存在

    2024年02月09日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包