热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

深入解析ES6中Symbol类型的独特性及其“唯一标识”特性

ES6引入了Symbol这一新型原始数据类型,其核心特性在于能够生成独一无二的值。起初,对于“独一无二”的概念我并未完全理解,但通过查阅相关资料并结合个人见解,逐步掌握了其精髓。Symbol的独特之处不仅在于其唯一性,还在于它在编程中的多种应用场景,如防止属性名冲突等。本文将深入探讨Symbol的特性和实际应用,帮助读者全面理解这一重要特性。

ES6引入了一种新的原始数据类型Symbol,表示独一无二的值,当时我对“独一无二”这个描述没有理解,后来看了一些帖子,根据自己的理解写了这个文章。

Symbol更看重的是他的性质,也就是独一无二绝对不可能有跟他一样的值的这个特性,而并不关心它具体等于什么值,也就是说它更像是一个标签和标记。

例子如下,这两个Symbol值仅仅是用来判断m值的一些特性,所以这两个值具体是多少根本不重要,重要的是他们一定不能相等,假如我要判断传入switch函数的m的值,为了避免耦合,会避免魔术字符串而使用变量来表示case后面的值,这种情况下,如果在后面的某一段代码中不小心更改了a.blue和a.yellow的值导致这两个值一样,就会使得switch方法运行出错。但是现在由于a.blue和a.yellow都是Symbol类型的值,所以他们肯定不会相等,这样就避免了switch方法会出现问题。

let a = {
blue: Symbol("Foo"),
yellow: Symbol("Foo")
}
let m = "China"
if (m.length > 0) {
m = a.blue
} else {
m = a.yellow
}
switch (m) {
case a.blue:
console.log("hello")
break
case a.yellow:
console.log("world")
}

 


推荐阅读
author-avatar
jason2502893743
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有