Symbol學習之路

Symbol數據類型


  • ES6之前的JavaScript數據類型

    • Number(數字)
    • String(字符串)
    • Boolean(布爾值)
    • Object(對象)
    • Null(空對象指針)
    • Undefined(聲明的變量未被初始化時)
  • 引入的背景

    • 對象的屬性名容易產生命名衝突,爲保證鍵名的唯一性,所以es6引入Symbol數據類型,確保創建的每個變量都是獨一無二的。
  • 特點

    • Symbol類型的數據是類似字符串的數據類型,由於Symbol函數返回的值是原始類型的數據,不是對象,所以Symbol函數前不能使用new命令,否則會報錯。

    • 可選參數。由於控制檯輸出不同的Symbol變量時都是Symbol(),所以爲了區分,在Symbol變量傳入參數進行區分。

          let a1 = Symbol('a1')
          let a2 = Symbol('a2')
      
  • 用法

    • 定義對象的唯一屬性名

      //在對象裏用Symbol作爲屬性名的三種寫法
      let name = Symbol()
      //第一種方式:藉助數組讀取name變量,此時不能用點運算符,點運算符默認後面的參數時字符串
      let a = {}
      a[name] = 'Nick'
      //第二種方式:構造時聲明
      let a = {
          [name]:'Nick'
      }
      //第三種Object.defineProperty
      let a = {}
      Object.defineProperty(a,name,{value:'Nick'});
      
    • 定義常量

      //定義字符串常量
      const name = Symbol('Nick')
      
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章