ES6 引入了一种新的原始数据类型 Symbol,表示独一无二的值。
它是 Javascript 语言的第七种数据类型,是一种类似于字符串的数据类型。
Symbol 特点:
1. Symbol 的值是唯一的,用来解决命名冲突的问题
2. Symbol 值不能与其他数据进行运算
3. Symbol 定义的对象属性不能使用 for...in 循环遍历
//创建Symbol
let s1 = Symbol();
let s2 = Symbol('hello');
let s3 = Symbol('hello');
console.log(s2 === s3); //false
//Symbol.for 创建
let s4 = Symbol.for('csdn'); //检测到未创建后新建
let s5 = Symbol.for('csdn'); //检测到已创建后返回
console.log(s4 === s5); //true
//不能与其他数据进行运算
let s = Symbol();
let result = s + 100;
let result = s > 100;
let result = s + 'csdn';
let result = s + 2;
结果:
js数据类型
USONB
u : undefined
s :string symbol
o : object
n : null number
b : boolean
对象添加symbol属性:
let youxi = {
name:'狼人杀',
[Symbol('say')]: function(){
console.log('我可以发言');
},
[Symbol('toudu')]: function(){
console.log('我是女巫,我可以投毒');
}
}
console.log(youxi);
参考: 尚硅谷Web前端ES6教程,涵盖ES6-ES11_哔哩哔哩_bilibili