//js中数据类型分为两大类:基本数据类型和引用数据类型
//基本数据类型分为:number、string、boolean、null、undefined
//引用数据类型分为:对象类型、函数,对象类型又分为:Object对象、Array数组、RegExp正则、Date时间对象、Math数学对象
//Symbol() 不能使用for in 循环等等
// 1.Symbol函数接受一个可选参数,方便代码阅读和后期调试
// 2.用Object.getOwnPropertyNames(). Object.keys()或者for...in等方法无法显示Symbol属性名
// 3.Object.getOwnPropertySymbols()方法返回包含所有Symbol属性的数组
// 4.Symbol函数不能使用new,因为是原始值
// 5.Symbol.for()创建共享Symbol,如果已存在,直接返回已有的Symbol6.Symbol函数创建的原始值都是唯一的
// 7.Symbol.keyFor()返回已登记Symbol有关的键
let emperor = {
prince: [ ' prince1', 'prince2 ', ' prince3 ' ],
princess: [' princessl', 'princess2', ' princess3']
};
const prince = Symbol('bastard ') ;
emperor[prince] = 'bastard';
console.log(emperor);
console.log(Object.keys(emperor));
//特殊的方法可以显示出来Symbol
console.log(Object.getOwnPropertySymbols(emperor));
//属于同一个时候可以用这个 创建一个可共享的Symbol
const prince2 = Symbol.for('bastard') ;