最主要的作用就是为对象添加独一无二的属性标识符
<script> // Symbol 数据类型 // shared.js ============================= // const cache = {} // // a.js ================================== // cache[‘a_foo’] = Math.random() // // b.js ================================== // cache[‘b_foo’] = 123 都以foo为名,键名产生冲突 // console.log(cache) // Symbol 符号,作用就是表示一个独一无二的值 // const s = Symbol() // console.log(s) // console.log(typeof s) // console.log(Symbol() === Symbol()) // console.log(Symbol(‘foo’)) 参数作为描述文本 // console.log(Symbol(‘bar’)) // console.log(Symbol(‘baz’)) symbol可以作为对象名,不能在对象外进行引用 const obj = { [Symbol()] : 789, name: “zs” } obj[Symbol()] = 123 obj[Symbol()] = 456 console.log(obj[Symbol()]) console.log(obj.name) </script>