ES6总结 9-Symbol数据类型

ES6学习总结是自己在学习过程中的总结,记笔记就是为了督促自己学习和复习,好记性不如烂笔头。如果有错误,感谢指出。

Symbol

Symbol数据类型,es6新增;Symbol声明的变量永远不相等

声明
{
  let a1=Symbol();
  let a2=Symbol();
  console.log(a1===a2);//false
}
声明2
{
  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()来进行获取;

作用,使用场景

使用同名的变量,不会因为key冲突

  let a1=Symbol.for('abc');
  let obj={
    [a1]:'123',
    'abc':345,
    'c':456
  };
  console.log('obj',obj);
用symbol做key值,let of for in 都取不到值
  for(let [key,value] of Object.entries(obj)){
    console.log('let of',key,value);//adc  c
  }
使用下列方法取到 symbol
  Object.getOwnPropertySymbols(obj).forEach(function(item){
    console.log(obj[item]);
  })
获取所有包括Symbol和非Symbol的属性
    Reflect.ownKeys(obj).forEach(function(item){
        console.log('ownkeys',item,obj[item]);
    })





















©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、ES6简介 ​ 历时将近6年的时间来制定的新 ECMAScript 标准 ECMAScript 6(亦称 ...
    一岁一枯荣_阅读 11,291评论 8 25
  • 1.概述 ES5的对象属性名都是字符串,这容易造成属性名的冲突。比如,你使用了一个他人提供的对象,但又想为这个对象...
    赵然228阅读 4,212评论 2 10
  • 概述 ES5的对象属性名都是字符串,这容易造成属性名的冲突。比如,你使用了一个他人提供的对象,但又想为这个对象添加...
    oWSQo阅读 3,547评论 1 3
  • 本文为阮一峰大神的《ECMAScript 6 入门》的个人版提纯! babel babel负责将JS高级语法转义,...
    Devildi已被占用阅读 6,190评论 0 4
  • 官方中文版原文链接 感谢社区中各位的大力支持,译者再次奉上一点点福利:阿里云产品券,享受所有官网优惠,并抽取幸运大...
    HetfieldJoe阅读 11,612评论 3 22

友情链接更多精彩内容