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( )相同参数,返回值不同
本文来自博客园,作者:ycccc丶,转载请注明原文链接:https://www.cnblogs.com/imycc/p/16478191.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~