一、Symbol类型
Symbol的基础数据类型,表示独一无二的值类似于id
创建Symbol通过函数Symbol()完整可以传递参数,也可以为空
不支持new Symbol()
在Symbol()函数中参数是对变量的描述,程序无法访问,只能日志打印
创建两个Symbol类型的变量,可以验证它们独一无二的特性
有没有参数,或参数是否相同都不恒等
因为Symbol是唯一存在的
Symbol类型变量无法进行隐式转换可显式,需要提前显示转换匹配的类型\
二、Symbol属性
由于Symbol类型是独一无二的值,作为对象属性就具有唯一性不出现重名
对于多模块、多人开发或者拼装属性名的情况下,有可能会出现属性名重复
重名的属性名不会报错,会被覆盖
拼装的属性名,也会被覆盖
属性名不是name,而是[Symbol(name)],需要加Symbol,参数name要不要都无所谓
方法名也可以使用Symbol类型
let fn = Symbol('fn');
let obj = {
fn {
return 'fn';
}
}