首頁 >web前端 >前端問答 >es6中symbol到底是什麼

es6中symbol到底是什麼

WBOY
WBOY原創
2022-03-30 14:15:072740瀏覽

es6中的symbol是一種新的原始資料類型,用來表示獨一無二的值,最大的用法是用來定義物件的唯一屬性名稱;因為Symbol是原始資料類型,不是對象,所以Symbol函數棧不能用new指令。

es6中symbol到底是什麼

本教學操作環境:windows10系統、ECMAScript 6.0版、Dell G3電腦。

es6中symbol到底是什麼

ES6 引進了一個新的原始資料型別 Symbol ,表示獨一無二的值,最大的用法是用來定義物件的唯一屬性名稱。

ES6 資料型別除了 Number 、 String 、 Boolean 、 Object、 null 和 undefined ,也新增了 Symbol 。

基本用法

Symbol 函數堆疊不能用 new 指令,因為 Symbol 是原始資料型別,不是物件。可以接受一個字串作為參數,為新建立的 Symbol 提供描述,用來顯示在控制台或作為字串的時候使用,以便於區分。

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

參數特點

Symbol的參數一般會存放一個字串用來標識不同的值,如果Symbol的參數是一個物件,那麼就會呼叫該物件的toString方法,將其轉換成字串,然後在產生一個Symbol值。

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

Symbol裡面的參數是表示目前這個Symbol值的描述,即便參數相同這兩個Symbol值也不會相同。

用法及特點

Symbol 作為物件屬性名稱時不能用.運算符,要用方括號。因為.運算子後面是字串,所以取到的是字串 sy 屬性,而不是 Symbol 值 sy 屬性。

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

【相關推薦:javascript影片教學web前端

以上是es6中symbol到底是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn