ES6_07_Symbol属性
Symbol属性:
前言:ES5中对象的属性名都是字符串,容易造成重名,污染环境 Symbol:
概念:ES6中的添加了一种原始数据类型symbol(已有的原始数据类型:String, Number, boolean, null, undefined, 对象)
特点:
1、Symbol属性值对应的值是唯一的,解决命名冲突问题
2、Symbol值不能与其他数据进行计算,包括同字符串拼串
3、for in, for of遍历时不会遍历symbol属性。
使用:
1、调用Symbol函数得到symbol值
let symbol = Symbol(); let obj = {}; obj[symbol] = 'hello';
2、传参标识
let symbol = Symbol('one'); let symbol2 = Symbol('two'); console.log(symbol);// Symbol('one') console.log(symbol2);// Symbol('two')
3、内置Symbol值
* 除了定义自己使用的Symbol值以外,ES6还提供了11个内置的Symbol值,指向语言内部使用的方法。
- Symbol.iterator
* 对象的Symbol.iterator属性,指向该对象的默认遍历器方法(后边讲)
举例:
//创建symbol属性值 let symbol = Symbol(); console.log(symbol); let obj = {username:'kobe', age:39}; obj[symbol] = 'hello'; console.log(obj); //for in ,for of不能遍历symbol属性 for(let i in obj){ console.log(i); } let symbol2 = Symbol('one'); let symbol3 = Symbol('two'); console.log(symbol2 == symbol3); console.log(symbol2, symbol3); //可以去定义常量 const Person_key = Symbol('person_key'); console.log(Person_key);
我是一个刚刚开始写博客的大可,内容有不详细或是错误的,还希望各位大佬私信我,我会进行纠正,谢谢啦!^-^