symbol
#es6 新的原始数据类型 symbol
表示独一无二的值 是JS的第七种数据类型,是一种类似于字符串的数据类型
- symbol的值是唯一的,用来解决命名冲突的问题
- symbol的值不能与其他数据进行运算(四则运算,比较)
- symbol顶一顶的对象不能使用 for…in…循环遍历,但是可以使用Reflect.ownKeys来获取对象的所有键名。
####创建symbol(函数方法)
let s = Symbol(); //使用一个方法创建一个唯一的数据
console.log(s,typeof s); //===> Symbol() “symbol”
symbol的唯一性对用户来说是不可见的。
####创建方式2(函数方法)
可以传入一个字符串
let s2 = Symbol('青年大学习'); //字符串是描述字符串,只是一个标志
console.log(s2);
let s3 = Symbol('青年大学习');
console.log(s2 === s3); //===>false
####创建方式3(对象方法)
let s4 = Symbol.for(‘青年大学习’);
console.log(s4);
//此方法创建的是一样的
let s5 = Symbol.for('青年大学习');
console.log(s4 === s5); //===>true;
##js的数据类型复习
USONB
u :undefined
s :string symbol
o :object
n :null number
b :boolen
#对象添加symbol类型属性
//对象中添加方法up down
let game = {}
//声明一个对象
let methods = {
up: Symbol(),
down: Symbol()
};
//给 game 对象添加methods 中的方法
game[methods.up] = function(){console.log('我可以上升');}
game[methods.down] = function(){console.log('我可以下降');}
console.log(game);
继续举例。
let youxi = {
name : '狼人杀';
[Symbol('say')]:function(){console.log('我可以发言')},
[Symbol('zibao')]:function(){console.log('我可以自爆')}
}
console.log(youxi);