symbol
symbol是一种类型 我们之前学过六种类型 分别是 string number boolean undefined null object
symbol是什么意思 ==> 唯一
var b = "a";
var obj ={
a:1,
[b]:2
}
console.log(obj)
每次使用symbol都是一个新的值
var a = Symbol("a");
var b = Symbol("b");
var obj = {
[a]:1,
[b]:2,
[Symbol()]: 3
}
console.log(obj)
console.log(obj[Symbol("a")])
console.log(obj[a])
对象的key必须是字符型 或者是symbol 如果不是以上两种类型 会自动转换为字符串
var obj = {}
var a = [1]
obj[a] =3
console.log(obj["1"]) 3
var o1 = {a:1,b:2};
console.log(o1.toString())
var o1 = {a:1}
obj[o1] = 3;
console.log(obj[{b:2}])
变量也可以使用Symbol
const LEFT = Symbol(), RIGHT = Symbol();
var state = 'left';
function fn(state){
switch(state){
case LEFT;
console.log(111)
break;
case:RIGHT;
console.log(222)
break;
}
}
fn(RIGHT)
for in 不能遍历Symbol属性