什么是symbol?

简介: 什么是symbol?

Symbol是ES6引入的一种新的基本数据类型。它表示一个独一无二的值,可以作为对象的属性名使用。与字符串或数字等其他类型的属性名不同,Symbol类型的属性名不会与其他属性名冲突,因为每个Symbol值都是唯一的。

Symbol值通过Symbol()函数创建,它的语法格式如下:

let mySymbol = Symbol();

Symbol函数可以接受一个可选的字符串参数,用于描述该Symbol值的含义,例如:

let mySymbol = Symbol('my description');

Symbol值可以用作对象属性的键名,如下所示:

let mySymbol = Symbol('my symbol');
let obj = {
  [mySymbol]: 'foo'
};
console.log(obj[mySymbol]); // 'foo'

需要注意的是,由于Symbol类型的属性名是唯一的,因此它们不能被枚举,即无法使用for...in循环遍历。如果要遍历Symbol类型的属性,可以使用Object.getOwnPropertySymbols方法获取所有Symbol类型的属性名。

相关文章
|
Linux Docker 容器
Docker 容器抓包说明
正常情况下,操作系统层面可以通过 tcpdump 来抓包。但对于容器环境,根据所使用的 base 镜像的不同,容器内不一定含有抓包工具,所以无法直接抓包。本文简要介绍如何通过 ```nsenter``` 工具来对容器快速抓包。 # nsenter 工具介绍 nsenter 包含在绝大部分 Linux 发行版预置的 util-linux 工具包中。它可以进入指定进程的关联命名空间。包
9581 0
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
构建AI智能体:八十九、Encoder-only与Decoder-only模型架构:基于ModelScope小模型的实践解析
本文深入解析大模型两大主流架构:Encoder-only与Decoder-only。前者如BERT,擅长双向理解,适用于文本分类、情感分析等任务;后者如GPT,基于自回归生成,适用于内容创作、对话系统等场景。二者代表不同技术路径,分别聚焦“深度理解”与“持续生成”,是开发者选型的重要依据。
627 7
|
12月前
|
安全 开发工具 开发者
仓颉编程语言(Cangjie)正式发布1.0.0 LTS版本,附安装配置教程
仓颉编程语言首个长期支持版本于2025年7月1日发布,定位为面向全场景应用开发的下一代语言。其特点包括多后端支持、简明语法、多范式编程、类型与内存安全、高效并发及丰富内置库。支持与C语言互操作,并提供元编程能力,助力UI开发。当前仅提供CJNative后端SDK,配套VS Code插件便于开发。安装包已规范命名,可在官网下载并按指导完成配置。
2027 1
仓颉编程语言(Cangjie)正式发布1.0.0 LTS版本,附安装配置教程
|
11月前
|
Ubuntu 安全 Linux
Ubuntu 20.04 LTS,更安全、易用和高效
总之,Ubuntu 20.04 LTS版本是一个值得升级和尝试的版本,最广泛的衍生版本对广大用户提供了最大程度的选择。快速的GNOME桌面的,完善的主题和设计,安全性改进也使Ubuntu 20.04值得进行更新。
685 0
|
搜索推荐 PHP 数据库
SEO外链自动发布外链工具网站源码
这套程序相当简洁,只有几个主程序和调用文件,无需数据库,无需安装,只要将文件上传到PHP环境就可以运行了,对PHP版本也要求较低,建议采用PHP5.6或者以上。
681 1
SEO外链自动发布外链工具网站源码
|
数据采集 缓存 前端开发
获取任意网站 icon 这件事并没那么简单
本文源自开发者Pony在创作“标签星球”过程中遇到的一个需求:如何高效获取并展示网站的Logo。为此,他深入研究并自建了一套图标获取与托管服务。标签星球是一款基于浏览器收藏夹的启动页应用,能将收藏夹转换为导航页形式,并支持模糊搜索及收藏夹分享等功能。在寻找合适服务时,Pony发现现有解决方案要么受限于技术壁垒,要么覆盖范围有限,这促使他着手搭建自己的服务。文章详细介绍了该服务的设计思路和技术实现过程,包括对多种网站图标设置方法的分析、链接处理策略、获取流程、缓存机制以及错误处理方案等。
591 2
|
边缘计算 人工智能 监控
边缘计算与AI结合的场景案例研究
【8月更文第17天】随着物联网(IoT)设备数量的爆炸性增长,对实时数据处理的需求也随之增加。传统的云计算模型在处理这些数据时可能会遇到延迟问题,尤其是在需要即时响应的应用中。边缘计算作为一种新兴的技术趋势,旨在通过将计算资源更靠近数据源来解决这个问题。本文将探讨如何将人工智能(AI)技术与边缘计算结合,以实现高效的实时数据分析和决策制定。
1613 1
|
JavaScript Android开发 开发者
从零开始:UniApp 项目搭建指南
从零开始:UniApp 项目搭建指南
698 4
|
Rust 监控 算法
基于circom、snarkjs实现零知识证明不透漏具体地理位置的区域监控
文章介绍了如何使用circom和snarkjs工具基于零知识证明算法Groth16实现不泄露具体地理位置的区域监控系统,详细说明了开发环境搭建、电路设计、计算和证明过程,并提供了相应的命令和代码示例。
408 0
|
前端开发 Java Nacos
3.服务配置NacosConfig
3.服务配置NacosConfig
294 0

热门文章

最新文章