JavaScript数据类型- Symbol 详解
文章目录
- 前言
- 1.唯一性
- 2. 描述
- 3. 作为对象属性键
- 4. 全局注册
- 6. 不可变性
- 7. 隐式转换
前言
Symbol是ES6新增内容,代表创建后独一无二且不可变的数据类型,它主要是为了解决可能出现的全局变量冲突的问题
在JavaScript发展的过程中,其中的ES6带来了一系列的新特性,其中之一就是Symbol。Symbol是一种特殊的原始数据类型,它提供了一种创建全局唯一标识符的方式,这对于避免命名冲突尤其有用。不同于传统的字符串或数字,每个Symbol都是独立且唯一的,即使它们具有相同的描述。这使得Symbol非常适合用于对象属性的键,从而避免了与其他属性键发生冲突的可能性。本文旨在深入探讨Symbol的各个方面,包括它的创建、使用方法以及与其他数据类型的交互方式,帮助更好地理解和利用这一特性。
1.唯一性
每次调用 Symbol() 都会返回一个新的、唯一的 Symbol 值
const sym1 = Symbol();
const sym2 = Symbol();
console.log(sym1 === sym2); // false
2. 描述
可以给 Symbol 提供一个可选的字符串参数作为描述,这有助于调试,但不会影响 Symbol 的唯一性
const sym = Symbol('mySymbol');
console.log(sym.toString()); // "Symbol(mySymbol)"
3. 作为对象属性键
Symbol 可以用作对象属性的键,并且不会与任何字符串键冲突
const key = Symbol('key');
const obj = {[key]: 'value'
};
console.log(obj[key]); // 'value'
console.log(obj['key']); // undefined
4. 全局注册
使用 Symbol.for(key) 可以创建一个全局唯一的 Symbol,如果之前已经存在相同的键,则返回已存在的 Symbol。
const sym1 = Symbol.for('foo');
const sym2 = Symbol.for('foo');
console.log(sym1 === sym2); // true
6. 不可变性
Symbol 是不可变的,一旦创建就无法改变其值。
7. 隐式转换
当尝试将 Symbol 转换成其他类型(如数字或字符串)时,会抛出 TypeError。不过,Symbol 可以通过 .toString() 或 .description 获得其字符串表示形式。
相关文章:
JavaScript数据类型- Symbol 详解
文章目录 前言1.唯一性2. 描述3. 作为对象属性键4. 全局注册6. 不可变性7. 隐式转换 前言 Symbol是ES6新增内容,代表创建后独一无二且不可变的数据类型,它主要是为了解决可能出现的全局变量冲突的问题 在JavaScript发展的过程中,其中的ES6带…...
WordPress网站添加嵌入B站视频,自适应屏幕大小,取消自动播放
结合bv号 改成以下嵌入式代码(自适应屏幕大小,取消自动播放) <iframe style"width: 100%; aspect-ratio: 16/9;" src"//player.bilibili.com/player.html?isOutsidetrue&bvidBV13CSVYREpr&p1&autoplay0" scrolling…...
11.6 校内模拟赛总结
打的很顺的一场 复盘 7:40 开题,看到题目名很interesting T1 看起来很典,中位数显然考虑二分,然后就是最大子段和;T2 构造?一看数据范围这么小,感觉不是很难做;T3 神秘数据结构;T…...
Redis常用的五大数据类型(列表List,集合set)
简介 List 的特点:单键多值。底层实际是个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节点性能会较差。 Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边ÿ…...
Ubuntu 20.04 部署向量数据库 Milvus + Attu
前言 最开始在自己的办公电脑(无显卡的 windows 10 系统) 上使用 Docker Desktop 部署了 Milvus 容器,方便的很, 下载 Attu 也很方便,直接就把这个向量数据库通过 Attu 这个图形化界面跑了起来,使用起来感…...
实现数传数据转网口(以太网)和遥控器SBUS信号转串口的功能
为了帮助你实现数传数据转网口(以太网)和SBUS信号转串口的功能,这里提供一个基本的框架。我们将使用STM32微控制器来完成这些任务。假设你已经具备了STM32的基本开发经验,并且已经安装了相应的开发环境(如STM32CubeIDE…...
APP 后台广告位配置的关键要素与策略
在当今数字化营销的浪潮中,APP 作为重要的信息传播渠道,其后台广告位的配置显得尤为关键。这不仅影响着广告的展示效果,还直接关系到用户体验和平台收益。 首先,了解目标受众是配置广告位的基础。通过对 APP 用户的行为数据进行分…...
分布式数据库概述
分布式数据库概述 分布式数据库是一种将数据分散存储在多个物理节点上的数据库系统,这些节点通过网络相互连接,形成一个逻辑上统一的数据库系统。它旨在提高数据的可用性、可靠性、性能和可扩展性,是现代大数据和云计算环境下不可或缺的重要技术。 一、分布式数据库的核心…...
用通义灵码帮助实现校验bpmn.js当前画布上只能有一个开始节点的功能
最终代码: const elementRegistry this.bpmnModeler.get(elementRegistry);// 获取所有元素const allElements elementRegistry.getAll();// 过滤出开始节点const startEvents allElements.filter(element > element.type bpmn:StartEvent);// 校验开始节点的…...
OKHTTP断点续传
OKHTTP断点续传 文章目录 OKHTTP断点续传HTTP断点续传知识点RangeContent RangeEtag&If-Range(文件唯一标志) OKHTTP断点下载OKHTTP 简单短断点下载代码示例 Android 断点续传一直是面试的高频问点,这里从HTTP断点续传知识和Android续传思…...
软件测试学习笔记丨Flask操作数据库-ORM
本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/23426 什么是持久化 是把数据保存到可永久保存的存储设备中(比如磁盘)。持久化的主要应用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件…...
ABAP 开发的那些小技巧
在对话框程序中的选择屏幕添加图标 要在选择屏幕中添加图标,其中包括参数: 在参数的选择文本中或选择选项(select-option)中写入 01 或选择选项: 您可以使用 01、02、03,依此类推,以获取不同的不同图标。 在运行时…...
电科金仓(人大金仓)更新授权文件(致命错误: XX000: License file expired.)
问题:电科金仓(人大金仓)数据库链接异常,重启失败,查看日志如下: 致命错误: XX000: License file expired. 位置: PostmasterMain, postmaster.c:725 解决方法: 一、下载授权文件 根据安装版本在官网下载授权文件(电科金仓-成为世界卓越的数据库产品与服务提供商)…...
玩转「HF/魔搭/魔乐」平台
模型下载 Hugging Face 下载到 GitHub CodeSpace CodeSpace创建环境: # 安装transformers pip install transformers4.38 pip install sentencepiece0.1.99 pip install einops0.8.0 pip install protobuf5.27.2 pip install accelerate0.33.0下载internlm2_5-7b…...
鸿蒙系统的优势 开发 环境搭建 开发小示例
HarmonyOS是面向多智能终端、全场景的分布式操作系统,为消费者提供跨终端的无缝体验.华为开发者联盟从HarmonyOS应用设计、开发、测试、推广变现等环节全方位助力开发者。 开发者可以通过以下步骤学习鸿蒙系统的开发: 基础理论学习: 了解鸿蒙系统概述&a…...
python批量合并excel文件
当工作中发现有多个excel表需要进行相同的操作或者需要汇总在一起,一个一个处理太费时间,以下的python代码能够帮你解决这个问题~ import pandas as pd import os# 设置Excel文件所在的文件夹路径和合并文件的输出路径 folder_path D:\\Desktop\\dat…...
AWS S3 JavaScript SDK(v3)常用操作
安装 aws s3 sdk npm install aws-sdk/client-s3配置 创建 ~/.aws/credentials 文件,添加以下配置项: [default] aws_access_key_id<...> aws_secret_access_key<...> region<...>S3 SDK常用桶操作 获取桶列表 import {S3Client,…...
数据结构——图的基本操作
文章目录 1.图2.图的结构体定义3.图的初始化4.添加顶点、删除顶点4.1添加顶点4.2删除顶点 5.添加边、删除边5.1添加边5.2删除边 6.打印图7.main函数 在生命旅途中,我们就像是一个个节点,被无数看不见的边相连。每一次的相识与相离,都在这张巨…...
掌握全球速递:在表格中高效利用国际快递公式查询快递
在当今全球化的商业环境中,国际快递服务已成为连接世界各地企业与个人的重要桥梁。无论是跨国企业间的货物运输,还是个人用户的海外购物需求,国际快递都扮演着不可或缺的角色。然而如何快速准确地获取大量国际快递的物流轨迹成为了一个挑战。…...
【MySQL系列】字符集设置
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
深入了解指针(3)
文章目录数组名的理解对arr[i]的理解一维数组传参的本质二级指针指针数组指针数组的用处总结这里是think的博客 希望可以一起交流知识,一起think 今天我们来学习指针(3)吧 一起来think吧 数组名的理解 //测试环境:X86 #include <stdio.h> int main() { int a…...
UDS_自动化脚本生成_10服务_V01
1、原子元素 1.1 会话原子 Session.Default() Session.Extended() Session.Programming() Session.Developer() 1.2 请求原子 10 01 10 02 10 03 10 76 10 81 10 82 10 83 10 F6 10 04 10 84 10 / 10 01 00 / 10 02 00 / 10 03 00 / 10 76 00 1.3 响应原子 50 01 00 32 01 F4 …...
CLIP实战指南:零样本图文检索与跨模态应用落地
1. 这不是又一个“多模态模型”名词解释,而是你真正能用起来的CLIP实战指南如果你最近在做图像搜索、零样本分类、图文匹配、跨模态检索,或者哪怕只是想给自家图库自动打标签、给设计稿配文案、给电商商品图生成合规描述——那CLIP绝不是论文里那个高冷的…...
避开BLE开发第一个坑:搞懂广播帧里的TxAdd、ChSel字段,让你的智能硬件不再‘隐身’
避开BLE开发第一个坑:广播帧关键字段解析与实战排查指南 当你第一次将精心编写的固件烧录进蓝牙芯片,满心期待地用手机扫描设备时,却发现屏幕上空空如也——这种"设备隐身"的挫败感,几乎每个BLE开发者都经历过。问题的根…...
SAR遥感技术:全天候农业监测的实践指南与数据融合
1. 项目概述:从“看”到“感知”,SAR如何革新农业监测在农业监测领域,我们传统上极度依赖光学卫星图像,比如大家熟知的Landsat、Sentinel-2,它们提供的NDVI(归一化差异植被指数)图几乎成了判断作…...
河北邯郸职称评审的方式有哪几种?
1、以考代评以考代评就是指有些专业技术岗位可以通过参加考试而不是递交繁琐的材料来获得专业技术职务资格。只要顺利通过国家指定的科目考试,你就可以获得专业技术资格,省去了各种审核流程的烦恼。2、只评不考只评不考是目前zui常见、适用范围zui广的一…...
入门吉他弹唱怎么选?面单琴技术对比:繁星AC-10 vs 雅马哈FG800
一、测评背景与技术参数1.1 测评样品信息桶型:GA桶 vs D桶面板:西提卡云杉纯单板 vs 西提卡云杉背侧板:桃花芯木纯单板 vs 那都木/奥古曼合板琴颈:奥古曼 vs 那都木指板:玫瑰木 vs 玫瑰木有效弦长:650mm vs…...
AI辅助编程:发展现状、效率评估与未来展望
引言:AI如何重塑编程范式? 在过去的几年里,人工智能(AI)正以前所未有的速度渗透到软件开发的各个角落。从最初的代码补全工具,到如今能够理解复杂需求、生成完整函数甚至设计系统架构的智能体,AI辅助编程已经从科幻概念演变为开发者日常工作中不可或缺的“副驾驶”。它…...
AI 时代的平台工程
两个月前,正是我 Aha moment 不断,多巴胺爆炸的时刻,每天都会记录下很多灵感和想法,准备在未来写成文章,或者开发成工具。其中有一条是这样的:AI 时代的平台工程(CLISkillMCP,可访问…...
React Props:深入解析组件间的数据传递
React Props:深入解析组件间的数据传递 在React中,组件间的数据传递是构建复杂应用的关键。Props(属性)是React组件间数据传递的主要方式,它允许父组件向子组件传递数据。本文将深入探讨React Props的概念、使用方法以及注意事项。 一、Props的概念 Props是React组件的…...
