symbol数据类型可以定义一个独一无二的值。
作用:
- 用作对象的属性名
用作对象的属性名时不会出现在for...in、for...of循环中,也不会被Object.keys()、Object.getOwnPropertyNames()、JSON.stringify()返回。
Object.getOwnPropertySymbols()方法,可以获取指定对象的所有 Symbol 属性名。该方法返回一个数组,成员是当前对象的所有用作属性名的 Symbol 值。
Reflect.ownKeys()方法可以返回所有类型的键名,包括常规键名和 Symbol 键名。
2.用于定义一组常量
log.levels = {
DEBUG: Symbol('debug'),
INFO: Symbol('info'),
WARN: Symbol('warn')