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

ES6笔记-symbol

ES6 symbol 是什么

ES5的对象属性名是字符串,这容易造成属性名的冲突。symbol是一种机制,保证每个属性的名字都是独一无二的。这样就从根本上防止属性名冲突。

它是一种原始数据类型Symbol,表示独一无二的值。它属于javaScript语言的原生数据类型之一。其他数据类型是,undefinde,null, 布尔值(Boolean),字符串(String),数值(Number),大整数(BigInt),对象(object)

symbol值通过symbol()函数生成。这也就是说,对象的属性名现在可以有两种类型,一种是原来就有的字符串,另一种是新增的Symbol类型。凡是属性名属于Symbol类型,就都是独一无二的,可以保证不会与其他属性名产生冲突

Symbol()函数不能使用new命令 ,否则会报错。这是因为Symbol是一个原始类型的值,不是对象,所以不能用new命令来调用。Symbol值不是对象,所以也不能添加属性。基本上,它是一种类似字符串的数据类型

Symbol()函数的参数只是对当前Symbol值的描述,因此相同参数的Symbol函数返回值是不相等的

Symbol值不能与其他类型的值进行运算,会报错

Symbol()函数创建symbol值时,可以用参数添加一个描述

但是读取这个方法要将symbol显示转换为字符串

由于每一个symbol值都是不相等的,这意味着只要symbol值作为标识符,用于对象的属性名,就能保证不会出现同名属性。这对于一个对象由多个模块构成的情况非常有用,能防止某一个键不小心改写覆盖
属性名遍历

symbol值作为属性名,遍历对象的时候,该属性不会出现在for…in,for…of循环中,也不会被object.keys(),object.getownproppertyNames(),json.stringify()返回
但是它也是一个私有属性有一个object.getownPropertysymbols()方法,可以获取指定对象的所有symbol属性名。该方法返回一个数组,成员是当前对象的所有用作属性名的symbol值

reflect.ownkeys()方法阶梯返回所有类型的键名,包括常规键和symbol键名

有时我能希望使用同一个symbol值,symbol.for()方法可以做到这一点。它接受一个字符串作为参数,然后搜索没有以该参数作为名称的symbol值。如果有,就返回这个symbol值,否则就新建一个以该字符串为名称的symbol值,并将其注册到全局

symbol.for()与symbol()这两种写法都会生成新的symbol。它们的区别是,前者会被登记在全局环境中共搜索,后者不会。symbol.for()不会每次调用就返回一个新的symbol类型的值,而是会先检查给定的key是否已经存在,如果不存在才会新建一个值。

Symbol.keyFor()方法返回一个已登记的symbol类型的key

由于symbol没有登记机制,所以用symbol创建的会返回undefinde

相关文章:

ES6笔记-symbol

ES6 symbol 是什么 ES5的对象属性名是字符串,这容易造成属性名的冲突。symbol是一种机制,保证每个属性的名字都是独一无二的。这样就从根本上防止属性名冲突。 它是一种原始数据类型Symbol,表示独一无二的值。它属于javaScript语言的原生数据类型之一。…...

C++设计模式介绍:优雅编程的艺术

物以类聚 人以群分 文章目录 简介为什么有设计模式? 设计模式七大原则单一职责原则(Single Responsibility Principle - SRP)开放封闭原则(Open/Closed Principle - OCP)里氏替换原则(Liskov Substitution …...

GitLab升级版本(任意用户密码重置漏洞CVE-2023-7028)

目录 前言漏洞分析影响范围查看自己的GitLab版本升级路程 升级过程13.1.1113.8.8 - 14.0.1214.3.614.9.5 - 16.1.6 前言 最近GitLab发了个紧急漏洞需要修复,ok接到命令立刻着手开始修复,在修复之前先大概了解一下这个漏洞是什么东西 漏洞分析 1、组件…...

Unity——八叉树的原理与实现

八叉树原理 八叉树(Octree)是一种用于在三维空间中进行空间分割的数据结构。它将三维空间递归地划分为八个子空间,每个子空间对应于一个八叉树节点。这种分割方式可以有效地组织和管理场景中的对象,提高检索效率,特别…...

android 自定义软键盘的显示和隐藏

记一下,以后不用找在InputMethodService中有这两个方法可以看到软键盘显示状态 //软键盘隐藏 override fun onWindowHidden() {super.onWindowHidden() } //软键盘显示 override fun onWindowShown() {super.onWindowShown() } 在activity中可以通过这种方法看到软键盘显示状…...

基于openssl v3搭建ssl安全加固的c++ tcpserver

1 概述 tcp server和tcp client同时使用openssl库,可对通信双方流通的字节序列进行加解密,保障通信的安全。本文以c编写的tcp server和tcp client为例子,openssl的版本为v3。 2 安装openssl v3 2.1 安装 perl-IPC-Cmd openssl项目中的co…...

11.2 Web开发_CSS入门(❤❤)

11.2 Web开发_CSS入门❤❤ 1. CSS简介1.1 基础案例2. CSS书写的位置2.1 行内式2.2 内嵌式2.3 外链式3. CSS基础选择器3.1 标签选择器3.2 id选择器3.3 类选择器3.4 选择器优先级3.5 通配符选择器4. 多类名5. 样式的两种特性5.1 层叠性...

[docker] Docker的数据卷、数据卷容器,容器互联

一、数据卷(容器与宿主机之间数据共享) 数据卷是一个供容器使用的特殊目录,位于容器中。可将宿主机的目录挂载到数据卷上,对数据卷的修改操作立刻可见,并且更新数据不会影响镜像,从而实现数据在宿主机与容…...

ATF(TF-A)安全通告TF-V11——恶意的SDEI SMC可能导致越界内存读取(CVE-2023-49100)

目录 一、ATF(TF-A)安全通告TFV-11 (CVE-2023-49100) 二、透过事务看本质SDEI是干啥的呢? 三、CVE-2023-49100 1、GICv2 systems 2、GICv3 systems 四、漏洞修复 一、ATF(TF-A)安全通告TFV-11 (CVE-2023-49100) Title 恶意的SDEI SMC可能导致越界内存读取&am…...

如何查找SpringBoot应用中的请求路径(不使用idea)

背景 昨天有个同事向我咨询某个接口的物理表是哪个,由于公司业务较多、这块业务的确不是我负责的,也没有使用idea不能全局搜索(eclipse搜不到jar内的字符串),也就回复了不清楚。 除了自己写代码输出servlet的路径和类外,发现了一…...

56. 合并区间 - 力扣(LeetCode)

题目描述 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。 题目示例 输入:intervals [[1,3…...

数据结构篇-03:堆实现优先级队列

本文着重在于讲解用 “堆实现优先级队列” 以及优先级队列的应用,在本文所举的例子中,可能使用优先级队列来解并不是最优解法,但是正如我所说的:本文着重在于讲解“堆实现优先级队列” 堆实现优先级队列 堆的主要应用有两个&…...

linux clickhouse 安装

1、官网下载clickhouse安装包 下载地址, clickhouse分lts和stable版本,lts是长期版本,一般选择安装lts版本。 其中clickhouse-server是clickhouse服务,就是用来访问数据存储数据,clickhouse-client是用来通过命令访问数…...

【游戏客户端开发的进阶路线】

*** 游戏客户端开发的进阶路线 春招的脚步越来越近,我们注意到越来越多的同学们都在积极学习游戏开发,希望能在这个充满活力的行业中大展拳脚。 当我们思考如何成为游戏开发领域的佼佼者时,关键在于如何有效规划学习路径。 🤔 我…...

vue3+naiveUI二次封装的v-model 联动输入框

根据官网说明使用 源码 <template><div class"clw-input pt-3"><n-inputref"input":value"modelValue":type"type":title"title"clearable:disabled"disabled":size"size"placeholder&…...

百度Apollo | 实车自动驾驶:感知、决策、执行的无缝融合

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏:《linux深造日志》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! ⛳️ 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下…...

DAY31:贪心算法入门455、53、376

理论基础 贪心算法的基本思路是通过局部最优从而达到全局最优&#xff0c;但是有时候局部最优并不一定导致全局最优&#xff0c;这样就需要动态规划的方法。但一部分题目是能通过贪心得到的。贪心的证明一般用到数学归纳法和反证法。在实际的问题中&#xff0c;没有统一的代码…...

LeetCode:376.摆动序列

个人主页&#xff1a;仍有未知等待探索-CSDN博客 专题分栏&#xff1a;算法_仍有未知等待探索的博客-CSDN博客 题目链接&#xff1a;376. 摆动序列 - 力扣&#xff08;LeetCode&#xff09; 一、题目 如果连续数字之间的差严格地在正数和负数之间交替&#xff0c;则数字序列称…...

Stable Diffusion插件Recolor实现黑白照片上色

今天跟大家分享一个使用Recolor插件通过SD实现老旧照片轻松变彩色&#xff0c;Recolor翻译过来的含义就是重上色&#xff0c;该模型可以保持图片的构图&#xff0c;它只会负责上色&#xff0c;图片不会发生任何变化。 一&#xff1a;插件下载地址 https://github.com/pkuliyi…...

Android 音频焦点管理

前言 前面写过一篇类似的文章&#xff0c;没写完&#xff0c;今天再详细描述一下。 Android音频焦点申请处理 音频焦点管理的意义 两个或两个以上的 Android 应用可同时向同一输出流播放音频。系统会将所有音频流混合在一起。虽然这是一项出色的技术&#xff0c;但却会给用…...

LFM2.5-1.2B-Thinking-GGUF部署教程:适配A10/A100/L4等主流GPU显存优化方案

LFM2.5-1.2B-Thinking-GGUF部署教程&#xff1a;适配A10/A100/L4等主流GPU显存优化方案 1. 模型简介与核心优势 LFM2.5-1.2B-Thinking-GGUF 是 Liquid AI 推出的轻量级文本生成模型&#xff0c;专为低资源环境优化设计。该模型采用 GGUF 格式存储&#xff0c;配合高效的 llam…...

HarmonyOS6 半年磨一剑 - RcCheckboxGroup 组件与全选不确定态机制深度解析

文章目录前言一、RcCheckboxGroup 内部状态同步1.1 双层状态管理1.2 选中状态判断二、布局渲染架构2.1 横向与纵向的渲染分支2.2 itemGap 的类型安全处理2.3 属性透传机制三、全选与不确定态&#xff08;indeterminate&#xff09;3.1 三态状态机3.2 全选逻辑实现3.3 indetermi…...

RePKG终极指南:Wallpaper Engine资源提取与转换的完整解决方案

RePKG终极指南&#xff1a;Wallpaper Engine资源提取与转换的完整解决方案 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg 你是否曾经遇到过这样的问题&#xff1f;在Wallpaper Eng…...

stealth.js全解析:40+反检测补丁的配置与优化技巧

Stealth.js全解析&#xff1a;40反检测补丁的配置与优化技巧 在当今的Web自动化领域&#xff0c;反检测技术已成为开发者必须掌握的核心技能之一。无论是数据采集、自动化测试还是其他需要模拟真实用户行为的场景&#xff0c;如何让脚本"隐形"都是决定成败的关键因素…...

手把手教你搞定Pico企业版串流:从‘Pico互联’安装到解决手势追踪失效问题

企业版Pico串流开发实战&#xff1a;破解手势追踪失效的完整方案 当你在Pico企业版设备上进行Unreal Engine开发时&#xff0c;是否遇到过这样的困境&#xff1a;明明按照官方文档操作&#xff0c;PC串流却始终无法建立连接&#xff1f;更令人抓狂的是&#xff0c;好不容易解决…...

融合多尺度特征与注意力机制的YOLOv5红外小目标检测优化方案

1. 红外小目标检测的技术挑战 红外遥感图像中的小目标检测一直是计算机视觉领域的难点问题。与可见光图像相比&#xff0c;红外图像具有低对比度、高噪声、目标尺寸小等特点&#xff0c;这使得传统检测算法难以取得理想效果。在实际应用中&#xff0c;军事侦察中的无人机识别、…...

ofa_image-caption算力适配:A10G云GPU上稳定运行的最小配置方案

ofa_image-caption算力适配&#xff1a;A10G云GPU上稳定运行的最小配置方案 1. 引言 如果你正在寻找一个能自动为图片生成英文描述的本地工具&#xff0c;并且希望它能在消费级显卡上流畅运行&#xff0c;那么基于OFA模型的图像描述生成工具很可能就是你的答案。这个工具最大…...

Qwen3.5-2B图文理解评测:在TextVQA、ChartQA等基准测试中的轻量级SOTA表现

Qwen3.5-2B图文理解评测&#xff1a;在TextVQA、ChartQA等基准测试中的轻量级SOTA表现 1. 模型概览 Qwen3.5-2B是Qwen3.5系列中的轻量化多模态基础模型&#xff0c;仅有20亿参数规模&#xff0c;却展现出超越参数量的强大图文理解能力。该模型专为低功耗、低门槛部署场景设计…...

利用华为云MaaS与OpenTiny NEXT构建智能电商后台:从传统操作到AI驱动的自动化升级

1. 传统电商后台的痛点与AI转型机遇 电商后台管理系统一直是运营人员的"战场"&#xff0c;每天面对商品上下架、库存调整、数据统计等重复性工作。记得三年前我参与过一个母婴电商项目&#xff0c;运营团队每天要手动处理上百个商品信息更新&#xff0c;高峰期经常加…...

别再乱调灯光和材质了!UE5渲染性能优化的三个核心禁忌与正确姿势

UE5渲染性能优化的三大禁忌与实战解决方案 在虚幻引擎5的渲染管线中&#xff0c;性能优化往往成为项目后期最棘手的挑战之一。许多开发者习惯性地将注意力集中在视觉效果上&#xff0c;却忽略了渲染效率的平衡。当场景复杂度达到临界点时&#xff0c;那些看似无害的高精度贴图…...