symbol数据结构的特点
时间: 2023-07-06 16:32:45 浏览: 47
Symbol 是 ES6 中新增的一种基本数据类型,它的特点如下:
1. Symbol 是一种原始数据类型,可以使用 `typeof` 运算符进行判断,返回值为 `'symbol'`。
2. 每个 Symbol 都是唯一的,即使创建多个具有相同描述符的 Symbol,它们也是不相等的。
3. 可以使用 Symbol 构造函数创建 Symbol,例如:`const s = Symbol('foo')`,其中 `'foo'` 是可选的描述符。
4. 由于 Symbol 是原始数据类型,因此不能使用 `new` 运算符创建 Symbol 对象。
5. 可以使用 Symbol 作为对象的属性名,例如:
```
const obj = {
[Symbol('foo')]: 'bar'
};
```
此时,该属性名是不可枚举的,因此无法通过 `for...in` 循环或者 `Object.keys()` 方法获取到该属性名。
6. Symbol 可以与其他数据类型进行联合类型,例如:
```
const sym = Symbol('foo');
const obj = {
[sym]: 'bar'
};
console.log(obj[sym]); // 输出 'bar'
```
在这个示例中,`obj` 对象中的属性名是一个 Symbol,可以通过该 Symbol 获取到属性值。
综上所述,Symbol 是一种唯一的、不可变的、不可枚举的属性名。由于它的唯一性,可以在扩展对象时避免属性名冲突的问题,因此在实际开发中有着广泛的应用。