跨境派

跨境派

跨境派,专注跨境行业新闻资讯、跨境电商知识分享!

当前位置:首页 > 跨境风云 > ES6 中 Symbol 怎么用?示例详解

ES6 中 Symbol 怎么用?示例详解

时间:2024-04-02 07:55:53 来源:网络cs 作者:纳雷武 栏目:跨境风云 阅读:

标签: 示例 
阅读本书更多章节>>>>

还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,echarts等技术开发,欢迎加底部微信(gis-dajianshi),一起交流。

在这里插入图片描述

No.内容链接
1Openlayers 【入门教程】 - 【源代码+示例300+】
2Leaflet 【入门教程】 - 【源代码+图文示例 150+】
3Cesium 【入门教程】 - 【源代码+图文示例200+】
4MapboxGL【入门教程】 - 【源代码+图文示例150+】
5前端就业宝典 【面试题+详细答案 1000+】

在这里插入图片描述

文章目录

一、ES6 Symbol 基本介绍二、使用场景三、用途总结


在这里插入图片描述

一、ES6 Symbol 基本介绍

Symbol 是 ECMAScript 6 引入的一种新的原始数据类型,它是不可变且唯一的。 这意味着每次调用 Symbol() 函数都会创建一个独一无二的值,即使传入相同的描述符也是如此。

// 创建 Symbollet sym1 = Symbol('description1'); // description1仅为描述信息,不影响符号的唯一性let sym2 = Symbol('description1');console.log(sym1 === sym2); // 输出: false// typeof检查console.log(typeof sym1); // 输出: "symbol"

代码示例:

// 创建Symbollet id = Symbol();let myObj = {};myObj[id] = 'This is a unique value';console.log(myObj[id]); // 输出: "This is a unique value"// 描述符let symWithDesc = Symbol('description');console.log(symWithDesc.description); // TypeError: Cannot read property 'description' of a non-object// Symbol.keyFor() 方法查找已注册的 Symbol 类型的键let globalSym = Symbol.for('globalKey');console.log(Symbol.keyFor(globalSym)); // 输出: "globalKey"// 注意,Symbol.for() 会查找全局 Symbol 注册表,确保同一描述符的 Symbol 在全局范围内是唯一的let anotherGlobalSym = Symbol.for('globalKey');console.log(anotherGlobalSym === globalSym); // 输出: true

二、使用场景

唯一标识符:由于 Symbol 值的唯一性,常常被用来作为对象的唯一属性名,防止属性冲突。
let myPrivateProp = Symbol('private');class MyClass {  constructor(value) {    this[myPrivateProp] = value;  }  get secretValue() {    return this[myPrivateProp];  }}

模块系统:在某些模块系统或库中,Symbol 可用于创建私有或隐式接口。

Map和Set键:Symbol 可以作为 Map 和 Set 的键,这样就不会与其他数据类型的键产生冲突。

内置 Symbol:ES6 提供了一些内置的 Symbol 值,如 Symbol.iterator 用于对象的迭代器方法。

let arr = ['a', 'b', 'c'];let iterator = arr[Symbol.iterator]();console.log(iterator.next().value); // 输出: 'a'

三、用途总结

Symbol 主要用于解决命名冲突的问题,特别是在编写大型应用或库时,可以帮助开发者避免无意间覆盖或访问到对象的内部属性。同时,它也为 JavaScript 提供了一种实现私有属性的间接途径。

阅读本书更多章节>>>>

本文链接:https://www.kjpai.cn/fengyun/2024-04-02/152417.html,文章来源:网络cs,作者:纳雷武,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

文章评论