ES6引入了一种新的原始数据类型Symbol,表示独一无二的值,它是javascript的第七种数据类型,前6种是:undefined、null、布尔值Boolean、字符串String、数值Number、对象Object
Symbol值通过Symbol函数生成
Symbol函数前不能使用new命令,否则会报错;这是因为生成的Symbol是一个原始类型的值,不是对象;也就是说,由于Symbol值不是对象,所以不能添加属性
Symbol函数可以接收一个字符串作为参数,表示对Symbol实例的描述,主要是为了在控制台显示,或者转为字符串时,比较容易区分
如果Symbol的参数是一个对象,就会调用该对象的toString方法,将其转为字符串,然后才胜场一个Symbol值
Symbol函数的参数只是表示对当前Symbol值的描述,因此相同参数的Symbol函数的返回值是不相等的
Symbol值不能与其他类型的值进行运算,会报错
Symbol值可以显式的转为字符串
Symbol值也可以转为布尔值,但是不能转为数值