ES6的Symbol是一种基本数据类型,它表示独一无二的值。每个Symbol都是唯一的,即使两个Symbol具有相同的值和属性,它们也是不相等的。
用途:
- 作为对象属性的键名,避免属性名冲突。
- 作为私有属性名,外部无法访问。
- 作为枚举值,表示一组固定的值。
示例:
// 创建Symbol
let symbol1 = Symbol('description');
let symbol2 = Symbol('description');
console.log(symbol1 === symbol2); // 输出 false
// 作为对象属性的键名
let obj = {
[symbol1]: 'value1',
[symbol2]: 'value2'
};
console.log(obj[symbol1]); // 输出 "value1"
console.log(obj[symbol2]); // 输出 "value2"
// 作为枚举值
const Color = {
RED: Symbol('red'),
GREEN: Symbol('green'),
BLUE: Symbol('blue')
};
console.log(Color.RED); // 输出 Symbol(red)