ES6中Symbol()创建的值和Symbol.for()创建的值不相等
我们会遇到会遇到:
<script>
let a = Symbol('小明')
let b = Symbol('小明')
console.log(a == b) // false
</script>
<script>
let c = Symbol.for('小明')
let d = Symbol.for('小明')
console.log(c == d) // true
</script>
区别
Symbol(key);每个从Symbol()返回的symbol都是唯一的;
使用Symbol.for() 方法创建时,会将创建的Symbol存入一个全局的注册表中,在下次创建时,会首先从注册表中查找是否已有相同的key值存在,如果有,直接返回上次存储的那个;如果没有它会再新建一个。