• 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]);
      })
    }
  • 相关阅读:
    C++成员函数在内存中的存储方式
    C++重写(覆盖)、重载、重定义、
    C++中的覆盖与隐藏(详细讲解)
    c++中被忽视的隐藏
    C++对象的内存分布和虚函数表
    C++ explicit关键字详解
    命名空间 extern的用法 static全局变量
    extern和include的作用
    extern用法总结
    KMP算法
  • 原文地址:https://www.cnblogs.com/diasa-fly/p/7007853.html
Copyright © 2020-2023  润新知