JS中第七种数据类型------Symbol
<script>
//1.js有七种数据类型
//基本类型6种:number string boolean undefined null Symbol
//引用类型1种:object
//2.symbol--表示独一无二的值,它是js中的第七种数据类型。属于基本类型
// let obj1={};
// let obj2={};
// let obj={
// a:1
// }
// obj['a']=10;
// obj.a=100;
// obj[obj1]=2; //obj[[object Object]]=2
// obj[obj2]=3; //obj[[object Object]]=3
// //alert(obj1);//[object Object]
// //alert(obj2);//[object Object]
// console.log(obj['a']);//100
// console.log(obj[obj1]);//3
//symbol函数接收一个字符串作为参数,表示对symbol的描述,主要是为了在控制台显示,或者转为字符串的时候,比较容易区分。描述的内容相同仅仅表示 的是描述,不代表其他的意义。
// let s1=Symbol('hello');
// let s2=Symbol('hello');
// console.log(s1==s2);//false
// console.log(s1===s2);//false
// console.log(s1);
// console.log(s2);
// let s1=Symbol('hello');
// let s2=Symbol('hi');
// let s3=Symbol('hi');
// let obj={
// s1:100,
// s2:200,
// [s1]:300,
// [s2]:400,
// [s3]:500
// }
// console.log(obj['s1']);//100
// console.log(obj[s1]);//300
//而且不能被for...in遍历出来
// for(let i in obj){
// console.log(obj[i]);
// }
//Object.getOwnPropertySymbols(obj)方法获取一个对象所有的symbol属性。
//console.log(Object.getOwnPropertySymbols(obj).length);
//console.log(Object.getOwnPropertySymbols(obj)[0]);
//console.log(Object.getOwnPropertySymbols(obj)[1]);
// for(let i=0;i<Object.getOwnPropertySymbols(obj).length;i++){
// console.log(obj[Object.getOwnPropertySymbols(obj)[i]]);
// }
</script>