首页 > 代码库 > ES6-----学习系列九(Symbol数据类型)
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]); }) }
ES6-----学习系列九(Symbol数据类型)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。