美文网首页
ES6总结 9-Symbol数据类型

ES6总结 9-Symbol数据类型

作者: 辣瓜瓜 | 来源:发表于2019-05-07 22:25 被阅读0次

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]);
    })




















相关文章

网友评论

      本文标题:ES6总结 9-Symbol数据类型

      本文链接:https://www.haomeiwen.com/subject/pmmyoqtx.html