⭐️ 类型与作用
Symbol(); // 不是构造函数,不可用new Symbol()
var s1 = Symbol();
var s2 = Symbol();
console.log(s1 === s2); // false
console.log(s1, '--', s2);
console.log(typeof s1);
var s1 = Symbol();
s1.a = 1; // 无法添加属性
console.log(s1.a);
通过传入的字符串添加不同的标识符
var s1 = Symbol('ss');
var s2 = Symbol({a: 1}); // 会调用Object.prototype.toString()
var s3 = Symbol(undefined);
var s4 = Symbol(null);
console.log(s1);
console.log(s2);
console.log(s3);
console.log(s4);
symbol 类型数据无法使用 Number 包装类进行数据转换,String 和 Boolean 可以
var s1 = Symbol(1);
console.log(s1);
console.log(String(s1));
console.log(Boolean(s1));
console.log(Number(s1));
var s1 = Symbol(null);
console.log(Object.getPrototypeOf(s1));
toString
var s1 = Symbol()
console.log(s1.toString());
console.log(!s1)
使用
var name1 = Symbol();
var obj = {};
obj[name1] = 'zhangsan';
console.log(obj);