zoukankan      html  css  js  c++  java
  • ES6-----学习系列九(Symbol数据类型)

    Symbol是es6新的数据类型。

      Symbol所声明的值是唯一的,独一无二的。永远不可能相等。Symbol.for(key) 先检查是否声明了key值  如果未声明就相当于调用Symbol  如果已经声明了 就相当于获取这个Symbol

    {
      // 声明
      let a1=Symbol();
      let a2=Symbol();
      console.log(a1===a2);//false
      let a3=Symbol.for('a3');
      let a4=Symbol.for('a3');
      console.log(a3===a4);//true
    }

      Symbol的使用  可以使用Symbol声明属于自己的唯一的变量  当其他继承他的也可以声明同名属性 而不会报错  注意:Symbol声明的变量for of是不能获取到的

      可以通过Object.getOwnPropertySymbols()获取Symbol变量  

      如果需要获取所有包括Symbol和非Symbol的属性  可以通过Reflect.ownKeys()来进行获取  (Reflect也是es6新增的方法,后续会进行总结)

    {
      let a1=Symbol.for('abc');
      let obj={
        [a1]:'123',
        'abc':345,
        'c':456
      };
      console.log('obj',obj);
    
      for(let [key,value] of Object.entries(obj)){
        console.log('let of',key,value);//adc  c
      }
    
      Object.getOwnPropertySymbols(obj).forEach(function(item){
        console.log(obj[item]);
      })
    
      Reflect.ownKeys(obj).forEach(function(item){
        console.log('ownkeys',item,obj[item]);
      })
    }
  • 相关阅读:
    北京大学计算机系2009应试硕士生上机考试(DF)
    我的考研2010(一)
    这张容易看懂...
    关于招商银行信用卡的若干事宜
    20 years
    C/C++中关于qsort的使用
    有道破题~~
    POJ 4010 2011
    有道难题练习赛 Sibonacci
    北京大学计算机系2009应试硕士生上机考试(AC)
  • 原文地址:https://www.cnblogs.com/diasa-fly/p/7007853.html
Copyright © 2011-2022 走看看