当前位置: 首页 > news >正文

【ES6】JavaScript中的Symbol

Symbol是JavaScript中的一种特殊的、不可变的、不可枚举的数据类型。它通常用于表示一个唯一的标识符,可以作为对象的属性键,确保对象的属性键的唯一性和不可变性。

Symbol.for()是Symbol的一个方法,它用于创建一个已经注册的Symbol对象。当使用Symbol.for()创建Symbol对象时,会首先检查已经注册的Symbol对象中是否存在与给定字符串相同的Symbol,如果存在,则返回该Symbol对象,否则创建一个新的Symbol对象并注册到已经注册的Symbol对象中。

<!DOCTYPE html><script>// 创建Symbol对象
const sym1 = Symbol();
const sym2 = Symbol('hello');
const sym3 = Symbol('world');
const sym4 = Symbol('world');// Symbol对象的唯一性和不可变性
console.log(sym1 === sym2); // false
console.log(sym2 === sym3); // false
//Symbol('world')每次都新建一个Symbol保证了不重复
console.log(sym3 == sym4); //false// Symbol.for()创建Symbol对象,会全局注册
const sym5 = Symbol.for('world');
const sym6 = Symbol.for('world');// Symbol.for()查找已注册的Symbol对象
console.log(sym5 === sym4); // false
console.log(sym5 === sym6); // true// Symbol对象可以被作为属性名,确保属性名的唯一性
const obj = {};
obj[sym1] = 'value 1';
obj[sym2] = 'value 2';
obj[sym3] = 'value 3';
obj[sym4] = 'value 4';
obj[sym5] = 'value 5';
obj[sym6] = 'value 6';console.log(obj[sym1]); // 'value 1'
console.log(obj[sym2]); // 'value 2'
console.log(obj[sym3]); // 'value 3'
console.log(obj[sym4]); // 'value 4'
console.log(obj[sym5]); // 'value 6' sym5和sym6相同
console.log(obj[sym6]); // 'value 6'</script>

在这里插入图片描述

相关文章:

【ES6】JavaScript中的Symbol

Symbol是JavaScript中的一种特殊的、不可变的、不可枚举的数据类型。它通常用于表示一个唯一的标识符&#xff0c;可以作为对象的属性键&#xff0c;确保对象的属性键的唯一性和不可变性。 Symbol.for()是Symbol的一个方法&#xff0c;它用于创建一个已经注册的Symbol对象。当…...

理解React页面渲染原理,如何优化React性能?

React JSX转换成真实DOM过程 当使用React编写应用程序时&#xff0c;可以使用JSX语法来描述用户界面的结构。JSX是一种类似于HTML的语法&#xff0c;但实际上它是一种JavaScript的扩展&#xff0c;用于定义React元素。React元素描述了我们想要在界面上看到的内容和结构。 在运…...

数据通信——传输层TCP(可靠传输机制的滑动窗口)

引言 之前提到过拥塞问题&#xff0c;如果大量数据疯狂涌入&#xff0c;接收端无法及时处理就会导致数据丢包&#xff0c;从而使得通信受到干扰。之前的连续ARQ如果不加以节制&#xff0c;疯狂发送报文&#xff0c;接收端无法及时返回ACK就会导致网络瘫痪。 滑动窗口机制协议 这…...

Mycat之前世今生

如果我有一个32核心的服务器&#xff0c;我就可以实现1个亿的数据分片&#xff0c;我有32核心的服务器么&#xff1f;没有&#xff0c;所以我至今无法实现1个亿的数据分片。——MyCAT ‘s Plan 话说“每一个成功的男人背后都有一个女人”&#xff0c;自然MyCAT也逃脱不了这个诅…...

Linux- 重定向标准输出(stdout)和标准错误(stderr)

在Linux或Unix系统中&#xff0c;可以通过重定向标准输出&#xff08;stdout&#xff09;和标准错误&#xff08;stderr&#xff09;来将脚本的输出保存到一个文件中。以下是一些方法&#xff1a; 只重定向标准输出到文件&#xff1a; ./your_script.sh > output.txt这将只捕…...

PostgreSQL分区表

什么是分区表 数据库分区表将表数据分成更小的物理分片&#xff0c;以此提高性能、可用性、易管理性。分区表是关系型数据库中比较常见的对大表的优化方式&#xff0c;数据库管理系统一般都提供了分区管理&#xff0c;而业务可以直接访问分区表而不需要调整业务架构&#xff0c…...

android framework之Applicataion启动流程分析(二)

上一篇讲了Zygote是如何收到启动Application的启动消息,并一步步进入Fork()&#xff0c;下面来分析zygote fork启动application后&#xff0c;application进程后续处理操作&#xff0c;是如何真正的启动的。 ZygoteInit.main():-->...caller ZygoteServer.runSelectLoop()…...

django静态文件无法访问解决方案

nginx配置如下&#xff1a; # For more information on configuration, see: # * Official English Documentation: http://nginx.org/en/docs/ # * Official Russian Documentation: http://nginx.org/ru/docs/user nginx; worker_processes auto; error_log /var/log/ng…...

WIndows 配置多版本python环境,非常清晰明了

配置多个python环境 下面以配置三个python版本环境为例子 首先下载好三个环境的python&#xff0c;如&#xff1a;python2.7、python3.6、python3.10 给个官网链接自己下&#xff0c;想要几版本就下几&#xff1a;https://www.python.org/downloads/windows/ 下载完成后将pyth…...

Leetcode每日一题:1267. 统计参与通信的服务器(2023.8.24 C++)

目录 1267. 统计参与通信的服务器 题目描述&#xff1a; 实现代码与解析&#xff1a; 写法一&#xff1a;两次遍历 hash 原理思路&#xff1a; 写法二&#xff1a;三次遍历 原理思路&#xff1a; 1267. 统计参与通信的服务器 题目描述&#xff1a; 这里有一幅服务器分…...

c++(8.28)菱形继承,虚继承,多态,抽象类,模板+Xmind

xmind: 作业&#xff1a; 1.编程题&#xff1a; 以下是一个简单的比喻&#xff0c;将多态概念与生活中的实际情况相联系&#xff1a; 比喻&#xff1a;动物园的讲解员和动物表演 想象一下你去了一家动物园&#xff0c;看到了许多不同种类的动物&#xff0c;如狮子、大象、猴…...

安装部署JavaFX和IDEA添加JavaFX的详细步骤

安装部署JavaFX和IDEA添加JavaFX的详细步骤 一、认识JavaFX二、下载JavaFX三、解压到目录下四、IDEA导入JavaFX五、添加JavaFX的VM选项六、运行命令七、总结一、认识JavaFX JavaFX是Java平台的一个图形用户界面(GUI)工具包,用于创建丰富、交互式和可视化的应用程序。JavaFX提…...

MAC电脑外放没有声音解决方案

烦人呐&#xff0c;我的mac外接显示屏幕&#xff0c;显示器没有音频输出&#xff0c;需要mac笔记本的音频输出&#xff0c;但是经常打开后&#xff0c;mac没有声音输出&#xff0c;需要重启电脑才能生效。亲测一下方法有效&#xff0c;请参考&#xff1a; 文章目录 一、短期方案…...

Spring源码分析(八)CreateBean与DoCreateBean

写目录 一 CreateBean二 doCreateBean2.1 BeanWrapper2.2 缓存删除2.3 实例化Bean2.3.1 Supplier创建对象2.3.2 工厂创建对象2.3.3 构造器创建实例无参构造构造器依赖注入Setter的依赖注入autowireConstructor实例化instantiateBean 方法 2.4 Bean的前置处理 官网&#xff1a;H…...

iSCSI存储服务器

目录 一、ISCSI是什么&#xff1f; 二、ISCSI产生背景 三、存储分类 四、ISCSI架构 五、ISCSI存储服务搭建案例 一、ISCSI是什么&#xff1f; ISCSI名为互联网小型计算机系统接口又称为IP-SAN&#xff0c;是一种新的远程存储技术&#xff0c;提供存储服务的目标服务器默认使用的…...

信息技术02--初/高中--分类选择题(377道题与解析)

文章目录 第一章 办公软件 1-96第二章 信息技术基础 1-41第三章 计算机系统基础 1-28第四章 多媒体技术 1-115第五章 计算机网络技术 1-50第六章 信息安全 1-3第七章 算法与程序简介 1-13第八章 数据结构 1-2第九章 数据库技术 1-20第十章 练习 1-9 第一章 办公软件 1-96 1、某…...

java --- 枚举类

目录 一、枚举类 二、创建枚举类 2.1、JDK5.0之前创建 2.2、JDK5.0使用enum创建 三、枚举类常用方法 四、枚举类实现接口 一、枚举类 枚举类型本质上也是一种类&#xff0c;只不过是这个类的对象是有限的、固定的几个&#xff0c;不能让用户随意创建。 二、创建枚举类 …...

nvm和volta对node版本控制的区别

前言——我们做前端开发的都会需要node.js环境&#xff0c;我们直接安装指定的版本可以么&#xff1f;可以&#xff0c;只不过在需要换版本的时候还得卸载重新装。那有工具可以帮助我们不用卸载就更改node版本么&#xff1f;有啊&#xff0c;nvm就可以。那又有没有什么工具不用…...

高斯消元解线性方程组

思路&#xff1a; &#xff08;1&#xff09;模拟线性代数解方程组办法&#xff0c;在此讨论正方形方程组求解。 &#xff08;2&#xff09;考虑几个问题&#xff1a; 数据存储&#xff1a;采用double数组存储。判断是否为零&#xff0c;由于double计算存在误差&#xff0c;…...

【linux命令讲解大全】032.介绍 Linux 中的 rcp 命令:简化主机间文件复制操作

文章目录 rcp补充说明语法选项参数实例rcp命令使用条件 从零学 python rcp 使在两台Linux主机之间的文件复制操作更简单 补充说明 rcp命令使在两台Linux主机之间的文件复制操作更简单。通过适当的配置&#xff0c;在两台Linux主机之间复制文件而无需输入密码&#xff0c;就像…...

告别天价桥接芯片!用高云GW5AT-LV15MG132 FPGA搞定MIPI C-PHY摄像头测试盒

国产FPGA革新摄像头测试方案&#xff1a;高云GW5AT-LV15MG132的MIPI C-PHY实战解析 在摄像头模组生产线上&#xff0c;测试环节的成本与效率直接关系到企业竞争力。传统测试方案依赖进口FPGA搭配昂贵桥接芯片&#xff0c;不仅物料清单&#xff08;BOM&#xff09;成本居高不下…...

保姆级教程:在Windows系统本地部署Qwen3-14B-Int4-AWQ对话模型

保姆级教程&#xff1a;在Windows系统本地部署Qwen3-14B-Int4-AWQ对话模型 1. 前言&#xff1a;为什么选择本地部署&#xff1f; 在个人电脑上运行大语言模型听起来可能有些遥不可及&#xff0c;但随着模型量化技术的进步&#xff0c;现在即使是消费级显卡也能流畅运行14B参数…...

实时口罩检测系统性能优化:从算法到工程全链路调优

实时口罩检测系统性能优化&#xff1a;从算法到工程全链路调优 1. 引言 在公共场所疫情防控中&#xff0c;实时口罩检测系统发挥着重要作用。但在实际部署中&#xff0c;很多开发者会遇到性能瓶颈&#xff1a;检测速度跟不上视频流帧率、GPU资源占用过高、误报漏报频发等问题…...

揭秘Windows热键失踪案:Hotkey Detective侦探手册

揭秘Windows热键失踪案&#xff1a;Hotkey Detective侦探手册 【免费下载链接】hotkey-detective A small program for investigating stolen hotkeys under Windows 8 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 你是否曾在Windows系统中按下熟悉的…...

5个步骤掌握PatternMaster图案生成工具:提升设计效率的自动化解决方案

5个步骤掌握PatternMaster图案生成工具&#xff1a;提升设计效率的自动化解决方案 【免费下载链接】illustrator-scripts Adobe Illustrator scripts 项目地址: https://gitcode.com/gh_mirrors/il/illustrator-scripts 在数字设计领域&#xff0c;效率与创意往往难以兼…...

从电子管到全固态:中波广播发射机核心技术演进与选型指南

1. 中波广播发射机的前世今生 第一次见到中波发射机是在十年前参观某省级广播电台时&#xff0c;那座两层楼高的电子管设备让我印象深刻——嗡嗡作响的风扇、散发着热量的金属外壳、闪烁着微光的电子管&#xff0c;活像科幻电影里的场景。如今这种"大家伙"已经逐渐被…...

DCT-Net人像卡通化效果展示:高清人脸转二次元虚拟形象作品集

DCT-Net人像卡通化效果展示&#xff1a;高清人脸转二次元虚拟形象作品集 一键将真人照片变成二次元虚拟形象&#xff0c;体验AI绘画的神奇魅力 1. 效果惊艳&#xff1a;从真人到二次元的华丽变身 DCT-Net人像卡通化技术能够将普通的人物照片转换成精美的二次元虚拟形象&#x…...

卷积计算常见误区解析:为什么你的结果和理论值对不上?

卷积计算常见误区解析&#xff1a;为什么你的结果和理论值对不上&#xff1f; 在图像处理和深度学习领域&#xff0c;卷积操作是基础中的基础。但令人惊讶的是&#xff0c;即使是经验丰富的开发者&#xff0c;在实际编码时也常常遇到计算结果与预期不符的情况。这就像做菜时严格…...

保姆级教程:从GEO下载Hi-C数据到HiC-Pro完整分析(避坑指南+实战脚本)

从零开始掌握Hi-C数据分析&#xff1a;HiC-Pro全流程实战与避坑指南 Hi-C技术已经成为三维基因组研究的重要工具&#xff0c;但对于刚接触生物信息学的研究人员来说&#xff0c;从原始数据到最终分析结果的过程往往充满挑战。本文将带你完整走通Hi-C数据分析全流程&#xff0c;…...

如何生成USearch API文档的PDF手册:快速创建可打印版本指南

如何生成USearch API文档的PDF手册&#xff1a;快速创建可打印版本指南 【免费下载链接】usearch Fastest Open-Source Search & Clustering engine for Vectors & &#x1f51c; Strings in C, C, Python, JavaScript, Rust, Java, Objective-C, Swift, C#, GoLang,…...