码迷,mamicode.com
首页 > 其他好文 > 详细

ES6-----学习系列九(Symbol数据类型)

时间:2017-06-14 13:06:32      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:pre   类型   ==   adc   通过   bsp   同名   使用   数据类型   

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

 

ES6-----学习系列九(Symbol数据类型)

标签:pre   类型   ==   adc   通过   bsp   同名   使用   数据类型   

原文地址:http://www.cnblogs.com/diasa-fly/p/7007853.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!