1、symbol是一个ES6标准种新增的一种基本数据类型,在JavaScript中,共有七种基本数据类型:string、number、object、boolean、null、undefined、symbol。并且除了null和undefined之外,每个基本类型都有其包装对象。
Symbol 本质上是一种唯一标识符,可用作对象的唯一属性名,这样其他人就不会改写或覆盖你设置的属性值。
2、基本用法:
Symbol 数据类型的特点是唯一性,即使是用同一个变量生成的值也不相等。
Symbol 数据类型的另一特点是隐藏性,for···in,object.keys() 不能访问。
JavaScript 中大多数的数值都支持隐式转换为字符串,但 symbol 不会转换,可以手动将 symbol 转换成字符串;
symbol 也不能与其他类型的值进行运算:
但是,symbol
并不是完全隐藏的,我们可以通过object.getownpropertysymbols(obj)
获取对象所有的symbol
,或者通过reflect.ownkeys(obj)
获取对象所有的键。