这里写目录标题
symbol是什么
symbol是es6新引入的原始类型,通过 Symbol 函数调用生成,由于生成的 symbol 值为原始类型,所以 不采用构造函数来生成对象,而是直接调用symbol函数来返回一个值,个人猜测返回的这个值很可能是堆的地址,只有这个值是唯一的;
symbol用来干什么
symbol函数最重要的特性就是它生成的值是唯一的,因为项目越来越大时,对象的属性名可能会重复,而symbol可以作为属性名,防止属性名冲突
let test1={
name:'张三',
[Symbol('age')]:'20'
}
let test2={
[Symbol('age')]:'18'
}
上面的两个对象就能用属性名相同的属性了
注意事项
- Symbol值不能与其他类型的值进行运算
- Symbol 值不可以和其他类型值进行混合运算,否则会报错
- Symbol 值如果想要作为属性名,那就不能再用点运算符,因为点运算符后面跟的总是字符串
- 在对象内部使用Symbol 值作为属性名的时候,必须要将值放在方括号中
本文介绍了ES6中新增的原始类型Symbol,讲解了其生成原理、作为唯一属性名的用途,以及使用时需要注意的独特性质,包括运算限制和属性名操作方式。
449

被折叠的 条评论
为什么被折叠?



