· Symbol是通过symbol函数生成的。
let s = Symbol();
console.log(s);//Symbol()
typeof(s);//”symbol”
· Symbol()函数通过接收一个字符串作为参数,来对产生的Symbol值进行描述,方便区分不同的Symbol值。
给Symbol函数加了参数之后,控制台输出的时候可以区分到底是哪一个值;Symbol函数的参数只是对当前Symbol值的描述,因此相同参数的Symbol函数返回值是不相等的;
Symbol函数的参数只能是字符串;
- Symbol值不能运算;
Symbol值可以转化为字符串和布尔值,但是不能转化为数值;
- Symbol作为属性名
- Symbol值作为属性值的遍历
Object.getOwnPropertySymbols()方法获取一个对象上的Symbol属性名;
Reflect.ownKeys()返回所有类型的属性名,包括常规属性名和 Symbol属性名;