版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_20087231/article/details/83339410
ES5的对象属性名都是字符串,容易造成属性名冲突
ES6引入新的原始数据类型Symbol,表示独一无二的值
对象的属性名可以有两种类型,一是字符串,二是Symbol类型
// 定义
let str1 = Symbol();
let str2 = Symbol();
console.log(str1 === str2);
console.log(typeof str1);
// 描述
let str3 = Symbol('name');
let str4 = Symbol('name');
console.log(str3 === str4);
// 对象的属性名
const obj = {};
// obj.name = '张三';
// obj.name = '李四';
// console.log(obj); // 李四
obj[Symbol('name')] = '张三';
obj[Symbol('name')] = '李四';
console.log(obj); //{Symbol(name): "张三", Symbol(name): "李四"}