简介
symbol是es6新增的第6中原始类型表示一个不可重复的值,不是函数,不能通过new调用
一下 我们用typeof来检测一下看一下他是什么类型
let a = Symbol();
console.log(typeof s) //"symbol"
解析:以上代码中,这个let变量a就是一个毒医无二的值。typeof检测结果,这个变量a是Symbol数据类型,并不是字符串类型或其他的类型
注意点 上面说过sybol函数不能用new来调用,不然会报错啊
下面我们看看看symbol函数是否可以接受字符串微参数,表示symbol实列
let a1 = Symbol("d1")
let a2 = Symbol("d2")
a1 //Symbol(d1)
a2 //Symbol(d2)
注意点:以上代码中a1和a2是两个symbol的值。如果不加参数的话,他们会在控制台输出全部是Symbol ,
不好区分啊,有了参数之后就会为他们添加描述一样,输出的时候就可以分辨清楚,到底是哪个是哪个的值
假如symbol的参数是对面 调用toString方法 会怎么样是否能生成一个Symbol的值呢?让我们拭目以待 下面带大家看看和一起分析一下 行吧 那就看看一下代码
const obj ={
toString(){
return "qaqaqa"
}
}
const sl = Symbol(obj);
sl// Symbol
解析:Symbol函数的参数只能代表当前Symbol的值进行描述,所有相同常参数Symbol函数的返回的值是不相等的