溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

es6中symbol指的是什么

發(fā)布時(shí)間:2022-03-30 14:52:54 來(lái)源:億速云 閱讀:193 作者:小新 欄目:web開發(fā)

這篇文章主要介紹es6中symbol指的是什么,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

es6中的symbol是一種新的原始數(shù)據(jù)類型,用于表示獨(dú)一無(wú)二的值,最大的用法是用來(lái)定義對(duì)象的唯一屬性名;因?yàn)镾ymbol是原始數(shù)據(jù)類型,不是對(duì)象,所以Symbol函數(shù)棧不能用new命令。

本教程操作環(huán)境:windows10系統(tǒng)、ECMAScript 6.0版、Dell G3電腦。

es6中symbol是什么

ES6 引入了一種新的原始數(shù)據(jù)類型 Symbol ,表示獨(dú)一無(wú)二的值,最大的用法是用來(lái)定義對(duì)象的唯一屬性名。

ES6 數(shù)據(jù)類型除了 Number 、 String 、 Boolean 、 Object、 null 和 undefined ,還新增了 Symbol 。

基本用法

Symbol 函數(shù)棧不能用 new 命令,因?yàn)?Symbol 是原始數(shù)據(jù)類型,不是對(duì)象。可以接受一個(gè)字符串作為參數(shù),為新創(chuàng)建的 Symbol 提供描述,用來(lái)顯示在控制臺(tái)或者作為字符串的時(shí)候使用,便于區(qū)分。

let sy = Symbol("KK");
console.log(sy);   // Symbol(KK)
typeof(sy);        // "symbol"
 
// 相同參數(shù) Symbol() 返回的值不相等
let sy1 = Symbol("kk"); 
sy === sy1;       // false

參數(shù)特點(diǎn)

Symbol的參數(shù)一般會(huì)存放一個(gè)字符串 用來(lái)標(biāo)識(shí)不同的值,如果Symbol的參數(shù)是一個(gè)對(duì)象,那么就會(huì)調(diào)用該對(duì)象的toString方法,將其轉(zhuǎn)換成字符串,然后在生成一個(gè)Symbol值。

var s1 = Symbol('id1');
var s2 = Symbol('id1');
console.log(s1 == s2);//false
var s3 = Symbol({});
console.log(s3);//Symbol([object Object])

Symbol里面的參數(shù)是表示當(dāng)前這個(gè)Symbol值的描述,即便參數(shù)相同這兩個(gè)Symbol值也不會(huì)相同。

用法及特點(diǎn)

Symbol 作為對(duì)象屬性名時(shí)不能用.運(yùn)算符,要用方括號(hào)。因?yàn)?運(yùn)算符后面是字符串,所以取到的是字符串 sy 屬性,而不是 Symbol 值 sy 屬性。

let syObject = {};
syObject[sy] = "kk";
syObject[sy];  // "kk"
syObject.sy;   // undefined

以上是“es6中symbol指的是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI