JavaScript 3.6 Symbol

jquery-3.6.0.min.js及其他版本的下载出处及下载方法 1.浏览器输入网址:jQuery.com 2.单击“download” 3.所有jQuery版本,当前(20210912)最新为3.6.0版 4.单击进入3.6.0版 效果图如下 5.全选,然后复制 6.新建TXT文档,并打开 7.粘贴。效果如下: 8.保存,并退出TXT文件 9.将TXT文件重命名为:jquery-3.6.0.min.js(因为本文下载的是jQuery的3.6.0版) 10.然后将这个jQuery文件放到你需要的那个文件夹里面,就可以直接调用了! ... 阅读详情

一、ES6 引入了一种新的原始数据类型 Symbol ,表示独一无二的值,最大的用法是用来定义对象的唯一属性名。

1、基本用法
let a= Symbol("hello");
console.log(a);   // Symbol(hello)
typeof(a);        // "symbol"
 
let b= Symbol("hello"); 
a === b;       // false
相同参数 Symbol() 返回的值不相等

2、由于每一个 Symbol 的值都是不相等的,所以 Symbol 
作为对象的属性名,可以保证属性不重名。
let sy = Symbol("key1");
 
// 写法1
let syObject = {};
syObject[sy] = "kk";
console.log(syObject);    // {Symbol(key1): "kk"}
 
// 写法2
let syObject = {
  [sy]: "kk"
};
console.log(syObject);    
ouptut:
{Symbol(key1): "kk"} 
输出sy的值应用syObject[sy],方括号不必不可少
 
// 写法3
let syObject = {};
Object.defineProperty(syObject, sy, {value: "kk"});
console.log(syObject);   // {Symbol(key1): "kk"}

3、在对象中查找Symbol属性
let sy = Symbol("key1");
let syObject = {};
syObject[sy] = "kk";
Object.getOwnPropertySymbols() //output:[Symbol(key1)]
Reflect.ownKeys(syObject);   //output:[Symbol(key1)]

二、全局Symbol

示例
class A{

    constructor(age,name,type){
        let sy = Symbol("hello");
        this.age = age;
        this.name = name;
        this[sy] = type;
    }
    get(){
        return this[sy]
    }
}
let a = new A(10,"test","world");
a.get();
sy被声明在构造方法中,所以a.get()会报错


改造1
let sy = Symbol("hello");
class A{

    constructor(age,name,type){
        
        this.age = age;
        this.name = name;
        this[sy] = type;
    }
    get(){
        return this[sy]
    }
}
let a = new A(10,"test","world");
a.get();
把sy声明在类外,便能通过get()获取到this[sy]的值

改造2
class A{

    constructor(age,name,type){
        let sy = Symbol.for("hello");
        this.age = age;
        this.name = name;
        this[sy] = type;
    }

}
let a = new A(10,"test","world");
a[Symbol.for("hello")]
把sy声明为全局Symbol,也能获得this[sy]的值


示例2
如果全局注册表中查找到该symbol,则返回该symbol的key值,
返回值为字符串类型。否则返回undefined

创建一个全局 Symbol 
var globalSym = Symbol.for("foo"); 
Symbol.keyFor(globalSym); 
output: "foo"

var localSym = Symbol(); 
Symbol.keyFor(localSym); 
output: undefined,

 以下Symbol不是保存在全局Symbol注册表中
Symbol.keyFor(Symbol.iterator) // undefined

详细内容:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Symbol

coderwhy前端课堂详细笔记整理javascript教程|promise3-reject,all,allSettled,race,any,ES6~ES13新特性Symbol,set基本使用 ◼ reject方法类似于resolve方法,只是会将Promise对象的状态设置为reject状态。◼ Promise.reject的用法相当于new Promise,只是会调用reject:◼ Promise.reject传入的参数无论是什么形态,都会直接作为reject状态的参数传递到catch的。 阅读详情

相关推荐

计算机网络期末复习提纲(全知识点总结)

计算机网络期末复习提纲全知识点总结第一章 概述1.基本概念- 链路,结点,协议和服务,实体和对等实体,各层PDU- C/S模式,B/S模式,P2P模式- LAN,WAN,MAN,PAN的划分- 网络性能参数:速率,带宽,吞吐量,时延,往返时间,信道利用率2.互联网的组成(边缘部分与核心部分的作用)3.电路交换与分组交换,数据报交换和虚电路交换的特点4.TCP/IP体系结构,数据的封装与解封装第二章 物理层1.信号编码:不归零编码,曼切斯特编码2.影响信号失真程度的因素3.传输介质:双绞线,同轴电缆,光纤(单

mcyuuji的博客 8万+

个人Javascript学习

一、JavaScript简介 1.1什么是JavaScript JavaScript,简称JS,由NetScape(网景)公司提供的一门语言; JS是一门嵌入在网页中执行的脚本语言,专门用于实现网页交互; JS嵌入在网页中,由浏览器负责解析并执行。为网页添加各种各样的动态效果或者为表单添加校验,目的是为了提供更好的用户体验; JS和其他语言一样,有自身的数据类型、表达式、运算符、语句等程序的基本组成部分; JS目前已经被广泛的应用于Web开发。 1.2JS特...

qq_51049931的博客 383

电力电子技术文章:ACOT控制模式在Buck变换器中的频率稳定性分析

本文深入分析了ACOT控制模式在Buck变换器中实现频率稳定性的原理与优势。通过对比传统COT模式,阐述了ACOT如何通过自适应调整导通时间,将开关频率锁定在设定值,从而有效应对输入电压与负载变化。文章还探讨了其在轻载DCM模式下的高效与平滑切换特性,并提供了关键的设计考量与实战指南。

cc789的博客 1149

JavaScript版本号对比

JavaScript版本号对比 之前项目中遇到要根据不同版本号来执行不同代码,想走捷径,结果一堆坑啊,各种比较错误。网上js写的相关代码好像不太搜得到,就在这里分享一下自己的代码。 通常版本号如:1.3.20.8,6.82.20160101等,复杂情况一般会形如比对(1.2.0,1.1.5),(1.2.4,1.1.5),(1.0.8,1.1.5),(3.0,1.1.5),(1.1.5.4,1....

大菜鸟的博客 1万+

5G时代必知:LDPC与Polar码实战解析(附MATLAB仿真代码)

本文深入解析5G时代核心信道编码技术LDPC码与Polar码的原理差异及性能表现,通过MATLAB仿真代码展示其在实际通信系统中的应用。LDPC码适用于大数据块高速传输,而Polar码在小数据块低时延场景表现优异,帮助开发者优化5G系统设计。

sugar的博客 642

Android开发者必看:F2FS文件系统如何优化你的手机存储性能(附实测数据对比)

本文深入解析了F2FS文件系统如何针对闪存特性优化Android设备存储性能。通过对比ext4,F2FS采用追加写和冷热数据分离策略,将随机写转化为顺序写,显著提升写入速度并减少GC卡顿。实测数据显示,其在随机写入和SQLite事务等场景下性能提升显著,为开发者提供了优化应用IO性能的关键思路。

weixin_29248313的博客 324

16. JavaScript 开发利器之 jQuery

16.1 现状 1、jquery 使用情况 16.2 官方文档 16.2.1 地址: https://www.w3school.com.cn/jquery/index.asp. 16.2.2 离线文档: W3School 离线手册(2017.03.11 版).ch 16.2.3 地址: https://jquery.cuishifeng.cn/. 16.3 JQuery 是什么? 16.3.1 基本介绍 jQuery 是一个快速的,简洁的 javaScript 库,使用户能更方便地处理 HTML,cs

要学就学灰太狼的博客 1599

霜冰优化算法(RIME)详解:从自然现象到智能优化

霜冰优化算法(RIME)是一种新型元启发式优化算法,灵感源于自然界中霜冰的形成过程。该算法通过模拟软霜和硬霜的不同生长特性,实现了高效的全局探索和局部开发平衡。RIME算法包含三个核心机制:软霜搜索策略模拟随机覆盖特性实现全局探索;硬霜穿刺机制模拟定向生长特性进行局部开发;正向贪婪选择机制确保解的持续优化。与遗传算法、粒子群算法相比,RIME具有参数少、收敛快、自适应平衡等优势,特别适合处理高维复杂优化问题。算法已在工程优化、机器学习等领域获得广泛应用,发表一年内即成为高被引论文。

qq_42212808的博客 779

(精华)2020年7月3日 JavaScript高级篇 ES6(Symbol数据结构)

概念以及引入的原因 // 新提出的一个数据结构 Symbol 基本数据类型 // Symbol表示独一无二 第七种数据类型 // 对象的属性是字符串 对象的话隐式调用toString 转化成字符串 let a = {a:1}; let b = {b:2}; let c = {}; c[a] = 3; // [object Object] c[b] = 4; // [object Object] console.log(c); // ? 怎么解决 let s = Symbol() console.log(t

愚公智库 56万+

【头歌】链栈的基本操作及应用

另外,在算法的开始和结束时,栈都应该是空的,所以匹配到最后还要判断栈是否为空,若空,则说明匹配成功,返回1。其中表达式只包含三种括号,花括号{}、中括号[]、圆括号(),即它仅由 (、)、[、]、{、}六个字符组成。预期输出: 栈中元素依次为:12 47 5 8 6 92 45 63 75 38 4 29 弹出的栈顶元素 e=29 栈空否:0(1:空 0:否) 栈顶元素 e=4 栈的长度为11 清空栈后,栈空否:1(1:空 0:否)// 若栈不空,则用e返回S的栈顶元素,并返回OK;

qq_39977056的博客 4383

【Neo4j × Python】基于知识图谱的电影问答系统(含问题记录与解决)附:源代码(含Bug解决)

此前,曾介绍过Neo4j的一些基础知识,本篇将在PyCharm中与Neo4j建立关联,从0到1实现一个基于知识图谱的电影问答系统,实现过程中,没有一帆风顺,而是遇到了一些问题,因此也包含问题的记录与解决。

追光者♂:记录、分享、总结、提升,现象级专栏《Python从入门到人工智能》作者,无惧黑暗,坚信曙光 3165

【js(4)js数据类型】

js数据类型知识

m0_74377334的博客 85

NLTK中WordNet与同义词处理

通过本教程,学习了如何使用NLTK中的WordNet进行自然语言处理任务。首先介绍了WordNet的基本概念及其在NLTK中的集成使用,接着讲解了如何查找同义词、反义词等词汇关系,并结合实际应用演示了语义相似性计算。这些技能在文本分析、情感分析、信息检索等场景中有广泛应用,可以帮助开发者构建更智能的自然语言处理系统。掌握这些基本操作后,可以进一步探索WordNet的其他高级功能,结合其他NLTK工具进行更复杂的语言分析。

Mr数据杨 471

Vue-Office项目升级至1.6.3版本后core-js依赖问题解析

在Vue-Office项目升级到1.6.3版本后,部分开发者遇到了项目启动报错的问题,错误提示为"Could not resolve 'core-js/modules/es.symbol.js'"。这个问题实际上是由于项目依赖关系变更导致的常见兼容性问题。 ## 问题本质分析 这个错误表明项目在运行时无法找到core-js模块。core-js是一个JavaScript标准库的polyfill,

gitblog_07967的博客 482

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

vue项目报错core-js/modules/es.symbol

今天做项目遇到一个神奇的bug 在项目启动的时候报错core-js/modules/es.symbol,为什么回报这种错,是因为我在启动时,用了es6的for…of遍历语法 解决办法 升级到core 3.6.4版本 npm install core-js@3.6.4

小菜鸟的博客 1449

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

JavaScript类型

为什么有的编程规范要求用 void 0 代替 undefined? 字符串有最大长度吗? 0.1 + 0.2 不是等于 0.3 么?为什么 JavaScript 里不是这样的? ES6 新加入的 Symbol 是个什么东西? 为什么给对象添加的方法能用在基本类型上? 基本类型 基本类型(基本数值、基本数据类型)是一种既非对象也无方法的数据。在 JavaScript 中,共有7种基本类型:st...

哈哩噜啾啾哈呀呀的博客 219

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

你不知道的Javascript类型知识

前言: JavaScript 类型对每个前端程序员来说,几乎都是最为熟悉的概念了。我们不妨先来思考几个问题: 为什么有的编程规范要求用 void 0 代替 undefined? 字符串有最大长度吗? 0.1 + 0.2 不是等于 0.3 么?为什么 JavaScript 里不是这样的? ES6 新加入的 Symbol 是个什么东西? 为什么给对象添加的方法能用在基本类型上? 类型: ...

liuhua_2323的博客 222

JS 的组成和变量

JS做客户端语言 按照相关的JS语法,去操作页面中的元素,有时还要操作浏览器里面一些功能 ECMAScript3/5/6…:JS的语法规范(变量、数据类型、操作语句等等) DOM(document Objeck model) :文档对象模型,提供一些JS的属性和方法,用来操作页面的DOM元素。 BOM(browser object model):浏览器对象模型,提供一些JS的属性和方法,用来...

L1841446801的博客 367

js数据类型

js中: 6种数据类型: String number boolean object function symbol Symbol 数据类型的特点是唯一性,即使是用同一个变量生成的值也不相等 3种对象类型: Object Date Array 2种不包含任何值的数据类型: null undefined 参考菜鸟 ...

lijiang_shen的博客 115

再学前端四 js类型

参考了 winer 老师的 “重学前端系列课程” 探索概要 为什么有的编程规范要求用 void 0 代替 undefined? 字符串有最大长度吗? 0.1 + 0.2 不是等于 0.3 么?为什么 JavaScript 里不是这样的? ES6 新加入的 Symbol 是个什么东西? 为什么给对象添加的方法能用在基本类型上? 类型 Undefined Null Object Number...

ITzhongzi的博客 437

从 (a==1&&a==2&&a==3) 成立中看javascript的隐式类型转换

最近的一道热门的题目 `Can (a ==1 && a== 2 && a==3) ever evaluate to true?`, 引起了很多人的关注与讨论,自己可以很容易想到一种实现,但是看大家讨论出来的答案,其中有很多有意思的,不得不佩服一些人的脑洞,其中很多原理也值得探讨。 很多其他语言的程序员对于这样的结果,很多...

weixin_34413065的博客 201

JS对象遍历|如何解决JS遍历对象时获取不到原型链属性/遍历顺序错乱问题

本文探讨了JavaScript对象遍历中常见的两类问题:无法获取原型链属性和遍历顺序错乱。问题根源在于开发者混淆了不同遍历方法对原型链、可枚举性和键名类型的处理规则,以及不了解ES6规范的对象属性遍历顺序。文章详细对比了6种常用遍历方法的差异,包括是否遍历原型链、Symbol键和遵循ES6顺序等特性,并解析了典型错误场景。核心解决方案是:根据需求选择正确的遍历方法,统一键名设计规范,必要时手动处理原型链。通过理解对象遍历的原生规则,开发者可以确保遍历结果的完整性和有序性。

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 269

Node.js v0.12 版本技术揭秘:ES6 特性与 V8 引擎升级

Node.js v0.12 版本技术揭秘:ES6 特性与 V8 引擎升级 Node.js v0.12 版本作为该项目的重大里程碑,带来了对 ECMAScript 6(ES6)特性的重要支持和 V8 引擎 3.28.73 版本的升级。文章详细介绍了该版本默认启用的 ES6 核心特性(如 Map/Set、Symbol、Promise、数值处理和数学函数扩展)以及需要通过 --harmony 标志启用的...

gitblog_01198的博客 1245

​JavaScript私有属性的多种实现方式总汇

点击上方前端Q,关注公众号回复加群,加入前端Q技术交流群来源 | http://www.fly63.comJavaScript被很多人认为并不是一种面向对象语言,原因有很多种,比如JavaScript没有类,不能提供传统的类式继承;再比如JavaScript不能实现信息的隐藏,不能实现私有成员。本文并不是为了打破以上误解(实际上笔者自己也有困惑),只是简单介绍几种Jav...

LuckyWinty的博客 708

JS类型变量与值

ECMAScript规范的类型共有六种:Undefined、Null、Boolean、String、Number和Object ES6添加的新类型:Symbol 基本类型和引用类型的区分方式是是否可以表示为固定长度。 除了Object之外的类型皆为基本类型,基本类型存放在栈上,引用类型存放在堆上。 Object无法预知长度,并且可以mutate,所以划分为引用类型。 Number JS没有真正的整数,使用的number类型数值都是浮点数。 JavaScript明确说明过使用的都是“双精度”(64位二进制)

计院菜鸟的博客 139
上一篇: JavaScript 3.5 解构赋值
下一篇: JavaScript 3.7 Map 、Set
LetsStudy
博客等级 码龄9年 96粉丝 323原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值