symbol类型
一、使用
使用 Symbol 来定义值,如图:
只能输入字符、数字以及undefined类型的值。
使用 Symbol 尽管你的值是一样的 它也是同一个,如图:
这时候打印出来的结果都是 false ,如果我们想找到的是同一个 那要怎么办的,这就看第二点 for 的使用
二、for 的使用
使用 Symbol.for(‘xxx’) 如果全局的 symbol 没有 xxx 这个 key 就会去创建一个 ,如果有的话就会直接拿来用, 这时候的 == 或 === 就会是 true 了
三、使用场景
如果我们出现了重复名称的属性,这时候就可以使用 Symbol 了,如图:
这时候打印出来的结果是这样的:
我们可以看出 虽然有重复名成的属性,但是并不影响我使用
四、key值的读取
1.使用 for in 是读不到 key 值的
2.使用 Object.keys() 也是读取不到 key 值的
3.使用 Object.getOwnPropertyNames() 也还是读取不到 key 值
4.但是在写 Object.getOwnPropertyNames() 时 Object.getOwnPropertySymbols() 可以读取到 key 值 但是 key 读不到了
5.还有最后的大招 Reflect.ownKeys() 这就就能读取到 key 以及 key 值了