ES5对象属性名都是字符串容易造成属性名的冲突。
ES6引入了一种新的原始数据类型Symbol,表示独一无二的值。Symbol函数前不能使用new命令,否则会报错。这是因为生成的Symbol是一个原始类型的值,不是对象,Symbol函数可以接受一个字符串作为参数,表示对Symbol实例的描述,主要是为了在控制台显示,或者转为字符串时,比较容易区分。
Symbol值通过Symbol函数生成
比较
Symbol函数的参数只是表示对当前 Symbol 值的描述,因此相同参数的Symbol函数的返回值是不相等的。
Symbol值可以转为字符串。
作为属性名的Symbol
注意
Symbol值作为对象属性名时,不能用点运算符。
Symbol值作为属性名时,该属性还是公开属性,不是私有属性。
以上就是关于symbol的分享,有不同见解可以在评论区分享。
更多前端内容请点击关注
欢迎点赞 评论转发
领取专属 10元无门槛券
私享最新 技术干货