ES6新增原始数据类型Symbol
Symbol表示独一无二的值,常用来定义对象的唯一属性名
注:ES6数据类型有Number、String、Boolean、Object、null、undefined、Symbol
Symbol函数栈不能用new创建(原始数据,非对象)
可接受一个字符串作为参数作为Symbol的描述,以便区分
相同参数的Symbol()返回的值不相等
<script type="text/javascript">
let a = Symbol("aa");
console.log("a的值:",a);
let b = Symbol("aa");
console.log("b的值:",b);
console.log(a == b);
console.log(a === b);
</script>
常作为对象唯一属性名
<script type="text/javascript">
let s = Symbol("username");
let sobj = {};
sobj[s] = "shally";
console.log(sobj);
let ssobj = {
[s]:"张三"
};
console.log(ssobj);
let sssobj = {};
Object.defineProperty(sssobj,s,{value: "李四"});
console.log(sssobj);
</script>
<script type="text/javascript">
var r = Symbol("aa");
var rr = Symbol.for("aa");
console.log(r == rr);
var rrr = Symbol.for("aa");
console.log(rr == rrr);
var zz = Symbol.for("czs");
console.log(Symbol.keyFor(zz));
</script>
你会了么?