ES6新增一种数据类型symbol,此数据类型主要防止相同的属性名多次使用被覆盖问题!至此简单回顾一下JavaScript的7种数据类型.
1.string 2.number 3.null 4.undefined 5.object 6.boolean 7.symbol //symbol对象永远不相等,解决属性名相同的问题
简单看一下symbol()类型防止属性名相同的例子
//声明一个cars空对象
var cars={}
//声明name是一个Symbol类型
let name=Symbol();
//给初始的symbol类型的name一个默认值
cars[name]="大众汽车";
console.log("cars.name:"+cars[name]);
{
//此作用域下重新声明一个新的symbol类型
let name=Symbol();
//此时将全局的name临时修改掉,只在当前作用域下是自定义
cars[name]="宝马汽车";
console.log("cars.name:"+cars[name]);
}
console.log("cars.name:"+cars[name]);//返回宝马汽车,又恢复原来的默认值
console.log(cars);//显示存在两个symbol的值
总结:symbol数据类型解决局部对象属性的值,用于临时且局部更改对象的属性 并不会更改对象原始属性的值!