1.symbol数据类型:
作用:创建一个独一无二的值,不会出现相同的值;防止出现匿名冲突。属性的覆盖问题
let name = Symbol("name");
let result = Symbol("name");
console.log(name == result)// 返回false
let obj={
eat(){
console.log(this[name])
console.log("吃饭")
}
}
obj[name]="尼古拉斯赵四";
obj.name="刘能";
//eat方法会输出尼古拉斯赵四
obj.eat();
注意:即使在外部修改对象的name,最终还是输出原来定义的值,通过symbol类型将name创建为独一无二的值;
每个从Symbol()返回的symbol值都是唯一的。一个symbol值能作为对象属性的标识符;这是该数据类型仅有的目的。
2.map数据类型:
作用:Map是一个类似于对象的数据类型,它是object的升级版,它可以将任何类型的数据作为
key
值;
map的写法:
//
let a = new Map(); //创建一个map对象
a.set(name , '张三'); //赋值
获取map数据类型中的数据:
通过get方法获取
const m = new Map([ ['name','张三'] , ['age',18] ]);
console.log(m.get('name')); //获取Map数据类型并在打印输出
输出结果为: