1. 程式人生 > >ES6 原始類型 Symbol

ES6 原始類型 Symbol

原始類型 key 直接 構造 程序 運算 uid bubuko npr

1. 創建Symbol (沒有字面格式)

技術分享圖片

技術分享圖片Symbol是原始值,沒有構造函數

Symbol接受一個可選參數,可以讓你添加一段文本描述即將創建的Symbol,這段描述不可用於屬性訪問,以便於代碼閱讀和調試程序

技術分享圖片

用typeof 來檢測Symbol

技術分享圖片

Symbol 可以用在可計算屬性名的地方

技術分享圖片

Symbol 共享體系

Symbol.for() 接受一個參數,那就是即將創建的Symbol字符串標識符,可共享

技術分享圖片

Symbol.for () 方法首先在全局Symbol註冊表搜索鍵為‘uid’ 的Symbol是否存在,如果存在,直接返回已有的Symbol ,否則,創建一個新的Symbol

並使用這個鍵在Symbol全局註冊表註冊,隨即返回新創建的Symbol

Symbol.keyFor() 在全局註冊表中檢索與Symbol有關的鍵

Symbol 與類型強制轉換

Symbol 不能強制轉化為字符串和數字類型,不能與字符串拼接,不能與運算符混合使用

Symbol 屬性檢索

Object.keys() 方法和 Object.getOwnPropertyNames() 方法可以檢索對象中的所有屬性名,前一個方法返回所有可枚舉的屬性名,後一個方法不考慮屬性的可枚舉性一律返回

Object.getOwnPropertySymbols() 的返回值是包含所有Symbol自有屬性的數組

ES6 原始類型 Symbol