Symbol

Symbol是一种类似于字符串的数据类型

Symbol特点:

  • Symbol的值是唯一的,常用来解决命名冲突的问题

  • Symbol的值不能与其他数据类型进行运算(包括Symbol类型)

  • Symbol定义的对象不能使用 for...in 遍历

初始

let s = Symbol() // 创建Symbol
console.log(s, typeof s)

结果:

特性介绍

// Symbol()
let s2 = Symbol('张三')
let s3 = Symbol('张三')

console.log(s2, typeof s2)
console.log(s3, typeof s3)

console.log(s2 === s3)

结果:

结果为 false , 因为 Symbol( )相同参数,返回值不同

比如身份证吧,一个人它的名字可以相同,但是身份证是唯一的
而Symbol( ),括号内就是名字,返回值就是身份证




// Symbol.for()
let s4 = Symbol.for('李四')
let s5 = Symbol.for('李四')

console.log(s4)
console.log(s5)
console.log(s4 === s5);

结果:

结果为 true , 因为 Symbol.for( )相同参数,返回值相同

Symbol.for( )方法会根据给定的键 去 Symbol注册表中 找对应的 Symbol,如果找到了,则返回它,否则 新建一个与该键关联的 Symbol 并放到 Symbol 注册表中




let s6 = Symbol('王五')
let s7 = Symbol.for('王五')
console.log(s6 === s7)

结果:false
注意:Symbol( )与Symbol.for( )相同参数,返回值不同




总结

  • Symbol( )相同参数,返回值不同
  • Symbol.for( )相同参数,返回值相同
  • Symbol( )与Symbol.for( )相同参数,返回值不同
posted @ 2022-07-14 16:23  ycccc丶  阅读(71)  评论(0编辑  收藏  举报
//背景线条