当我们需要一个独一无二的值时,可以使用Symbol。Symbol是ES6引入的一种新的基本数据类型,它可以被用作对象属性的键,以保证对象的属性名不会与其他属性名冲突。每个Symbol值都是唯一的,即使它们具有相同的描述。

创建Symbol的方式非常简单,可以使用Symbol函数来创建一个新的Symbol值:

constsymbol1=Symbol();
constsymbol2=Symbol('mySymbol');

Symbol函数也可以接受一个可选的描述字符串作为参数,这个描述字符串可以在调试和错误跟踪时使用,但不会影响Symbol本身的唯一性。

Symbol.for方法则可以创建并返回一个带有给定键的Symbol值。如果在全局Symbol注册表中已经存在具有给定键的Symbol,则返回该Symbol,否则将创建一个新的Symbol并将其注册到全局Symbol注册表中。

constsymbol1=Symbol.for('mySymbol');
constsymbol2=Symbol.for('mySymbol');
console.log(symbol1===symbol2); // true

可以看到,symbol1和symbol2的值是相等的,这是因为它们使用了相同的键。Symbol.for方法不会像Symbol函数一样创建一个新的Symbol值,而是检查是否已经存在给定键的Symbol值,如果存在则返回该值,如果不存在则创建并返回一个新的Symbol值。

在JavaScript中,有一些预定义的Symbol常量,例如Symbol.iterator、Symbol.match和Symbol.replace等,它们定义了在ECMAScript规范中用于特定用途的Symbol值。

总之,Symbol提供

Symbol方法简略解析,与Symbol.for(‘xxx‘)相关推荐

  1. C/C++ 编译的时候报错“LNK2019: 无法解析的外部符号:xxx,该符号在xxx中被引用”

    当出现 编译的时候报错"LNK2019: 无法解析的外部符号:xxx,该符号在xxx中被引用" 的时候 . 分析原因: 出现这个LNK错误是链接错误,因为c/c++程序需要经过:预 ...

  2. ES6 Symbol类型的应用、symbol属性名的遍历、Symbol.for()Symbol.keyFor()

    目录 Symbol类型 介绍 Symbol.prototype.description Symbol的应用 1 给对象内追加属性 2 消除魔术字符串 symbol属性名的遍历 Symbol.for() ...

  3. php的延迟绑定,PHP延迟静态绑定使用方法实例解析

    这篇文章主要介绍了PHP延迟静态绑定使用方法实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 PHP的继承模型中有一个存在已久的问题,那就是在 ...

  4. Dom方法,解析XML文件

    Dom方法,解析XML文件的基本操作 1 package com.demo.xml.jaxp; 2 3 import java.io.IOException; 4 5 import javax.xml ...

  5. java中构造方法和方法全面解析

    java中构造方法和方法全面解析 我相信大多说人都对构造方法.方法不陌生,而且很了解,但我也相信有很多像我这样的没有一个很好很清晰很全面的认识,今天就把它整理如下,希望能给大家带来点方便与帮助,也希望 ...

  6. 编程笔试(解析及代码实现):字符串反转(字符串逆序输出)代码实现十多种方法对比(解析思路及其耗费时间)详细攻略

    编程笔试(解析及代码实现):字符串反转(字符串逆序输出)代码实现十多种方法对比(解析思路及其耗费时间)详细攻略 目录 字符串反转(字符串逆序输出)代码实现十多种方法对比(解析思路及其耗费时间)详细攻略 ...

  7. iOS对UIViewController生命周期和属性方法的解析

    iOS对UIViewController生命周期和属性方法的解析 一.引言 作为MVC设计模式中的C,Controller一直扮演着项目开发中最重要的角色,它是视图和数据的桥梁,通过它的管理,将数据有 ...

  8. python json转换字典_Python json转字典字符方法实例解析

    josn基本操作 1.导入import json 2.字典转json:json.dumps(dict,ensure_ascii=False),加,ensure_ascii=False转换之后无中文乱码 ...

  9. psql error: psql: symbol lookup error: psql: undefined symbol: PQconnectdbParams

    linux遇到一个Postgresql的问题,在调用pg_restore时: ./pg_restore -h 127.0.0.1 -p 5432 -U postgres -v -d dbname /u ...

最新文章

  1. ggsave的图片图例不显示中文解决办法
  2. 【Android SOAP】基于第三方开源项目ksoap-android
  3. 如何查看抓包文件所使用的捕获过滤器
  4. Maven远程仓库:pom依赖以及jar包下载
  5. linux设备驱动学习,linux设备驱动学习4
  6. .NET Framewrok 4.0新增类库
  7. [NOI2013]树的计数
  8. Linux如何检查目录inode占用,linux – 如何确定哪个文件/ inode占用给定扇区
  9. android.view.WindowManager$BadTokenException
  10. 关于最近Vue3+ Vue-CLI3+比较热门的十几篇文章
  11. Windows消息机制概述
  12. wpsoffice安卓历史版本_安装老版本的手机APP
  13. javascript的compile()函数使用
  14. JavaScript删除数组里的某个元素
  15. 同步异步与阻塞非阻塞
  16. 【手势识别】基于matlab GUI石头剪刀布【含Matlab源码 774期】
  17. 使用python生成 gif 格式的动图
  18. 案例分享——低压电力线载波通信模组(借助电源线实现远距离数据传输、宽压输入、波特率范围广、应用场景多样化)
  19. 让你的Linux支持WEB修改密码(转)
  20. 使用EasyExcel的坑

热门文章

  1. springboot整合swagger+knife4j
  2. Arduino基础入门三:数字IO口作为输出
  3. htm代码(htm,不是html。)
  4. Unity3D--让T恤呈现恐怖异形
  5. Excel打印预览时反应很慢
  6. gorm中created_at 时间,go time时间,mysql数据库时间的一些问题总结
  7. Avatar和虚拟场景如何影响用户VR社交行为
  8. 后期调色效果Lr预设
  9. 实验十八 Spark实验:Spark Streaming
  10. windows校准时间,与互联网同步