ES6-Symbol
Symbol实际上是ES6引入的一种原始数据类型,除了Symbol,JavaScript还有其他5种数据类型,分别是Undefined、Null、Boolean、String、Number、对象,这5种数据类型都是ES5中就有的。
1、创建实例:symbol不能用new命令来实例化,否则报错。
// symbol 的实例 let sy1 = Symbol('key1'); let sy2 = Symbol('key1'); let sy3 = Symbol('key3'); console.log(sy1); // Symbol('key1'); console.log(sy1 === sy2); // false console.log(typeof (sy1)); // 'symbol'
symbol的参数是一个字符串,也可以是一个对象,会把对象调用toString进行转换
2、symbol 的作用是防止对象属性名都是字符串容易造成属性名的冲突。
console.log(sy1 === sy2); // false
sy1 不等于 sy2 是因为symbol表示独一无二的值。
let obj = { name: 'tom' } obj.name = 'lusi';
这里的obj.name被重写了,
3、symbol的作用:
const COLOR_red = Symbol('red'); const COLOR_yellow = Symbol('yellow'); const COLOR_blue = Symbol('blue'); function getConstantName(color) { switch (color) { case COLOR_red : return "COLOR_RED"; case COLOR_yellow : return "COLOR_YELLOW "; case COLOR_blue: return "COLOR_BLUE"; default: // throw new Exception('Can\'t find this color'); return "COLOR_not"; } } console.log(getConstantName(COLOR_red));
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App