ES6概念 ymbol.for()方法


Posted in Javascript onDecember 25, 2016

Symbol.for()方法:
使用Symbol()方法可以创建一个Symbol类型的值。
代码实例如下:

let s = Symbol();
let one = Symbol("三水点靠木");
let two = Symbol("三水点靠木");
console.log(one == two);

即便是键值相同两个Symbol类型的值也是不相同的。
更多关于Symbol的内容可以参阅ES2015 Symbol一章节。
使用Symbol.for()方法也可以创建一个Symbol类型的值,但是此方法和Symbol()的一个重要区别是,它不会重复创建具有相同键的值,也就是说此方法在创建一个值之前,首先会搜索是否已经具有指定键的Symbol类型的值,如果有则返回这个Symbol值,否则新创建一个Symbol值。
代码实例:

let one = Symbol.for("三水点靠木");
let two = Symbol.for("三水点靠木");
console.log(typeof one);
console.log(one == two);

第一次调用Symbol.for()方法会创建一个键值为"三水点靠木"的Symbol类型的值。
第二次调用的时候会搜索是否已经存在以"三水点靠木"为键的Symbol类型的值,如果存在就返回这个Symbol值。

let one = Symbol.for();
let two = Symbol.for();
console.log(typeof one);
console.log(one == two);

不传递参数也是同样的道理。

let one = Symbol("三水点靠木");
let two = Symbol.for("三水点靠木");
console.log(one == two);

Symbol.for()创建的值会被登记在全局环境中供搜索,而Symbol()创建的值不会,所以Symbol.for("三水点靠木")依然会新创建一个Symbol值,而不是返回Symbol("三水点靠木")创建的值。

Javascript 相关文章推荐
js读写(删除)Cookie实例详解
Apr 17 Javascript
js改变鼠标的形状和样式的方法
Mar 31 Javascript
jQuery中insertBefore()方法用法实例
Jan 08 Javascript
原生js实现日期联动
Jan 12 Javascript
jquery实现相册一下滑动两次的方法
Feb 09 Javascript
深入了解JavaScript中的Symbol的使用方法
Jul 28 Javascript
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
Apr 10 jQuery
Webstorm2016使用技巧(SVN插件使用)
Oct 29 Javascript
Vue 中的受控与非受控组件的实现
Dec 17 Javascript
vue-router传参用法详解
Jan 19 Javascript
用Node写一条配置环境的指令
Nov 14 Javascript
Javascript中的奇葩知识,你知道吗?
Jan 25 Javascript
ES2015 Symbol 一种绝不重复的值
Dec 25 #Javascript
基于Javascript实现的不重复ID的生成器
Dec 25 #Javascript
JS常见疑难点分析之match,charAt,charCodeAt,map,search用法分析
Dec 25 #Javascript
js实现hashtable的赋值、取值、遍历操作实例详解
Dec 25 #Javascript
jQuery实现花式轮播之圣诞节礼物传送效果
Dec 25 #Javascript
AngularJS入门教程之Helloworld示例
Dec 25 #Javascript
jQuery实现圣诞节礼物动画案例解析
Dec 25 #Javascript
You might like
PHP命名空间(Namespace)简明教程
2014/06/11 PHP
PHP CURL 内存泄露问题解决方法
2015/02/12 PHP
php图片添加水印例子
2016/07/20 PHP
Ubuntu彻底删除PHP7.0的方法
2018/07/27 PHP
PHP文件操作实例总结【文件上传、下载、分页】
2018/12/08 PHP
Laravel框架下载,安装及路由操作图文详解
2019/12/04 PHP
javascript中负数算术右移、逻辑右移的奥秘探索
2013/10/17 Javascript
jquery属性选择器not has怎么写 行悬停高亮显示
2013/11/13 Javascript
深入理解JavaScript系列(42):设计模式之原型模式详解
2015/03/04 Javascript
jQuery 判断图片是否加载完成方法汇总
2015/08/10 Javascript
js实现适合新闻类图片的轮播效果
2017/02/05 Javascript
Node.js获取前端ajax提交的request信息
2017/02/20 Javascript
鼠标拖动改变DIV等网页元素的大小的实现方法
2017/07/06 Javascript
基于node.js express mvc轻量级框架实践
2017/09/14 Javascript
静态页面实现 include 引入公用代码的示例
2017/09/25 Javascript
Angular实现点击按钮控制隐藏和显示功能示例
2017/12/29 Javascript
node.js遍历目录的方法示例
2018/08/01 Javascript
JS实现根据指定值删除数组中的元素操作示例
2018/08/02 Javascript
学习React中ref的两个demo示例
2018/08/14 Javascript
javascript将非数值转换为数值
2018/09/13 Javascript
vue项目中在外部js文件中直接调用vue实例的方法比如说this
2019/04/28 Javascript
Vue的编码技巧与规范使用详解
2019/08/28 Javascript
javascript设计模式 ? 备忘录模式原理与用法实例分析
2020/04/21 Javascript
Nuxt 项目性能优化调研分析
2020/11/07 Javascript
python判断端口是否打开的实现代码
2013/02/10 Python
使用Python发送各种形式的邮件的方法汇总
2015/11/09 Python
Python的Flask框架应用程序实现使用QQ账号登录的方法
2016/06/07 Python
numpy实现合并多维矩阵、list的扩展方法
2018/05/08 Python
使用Python爬取Json数据的示例代码
2020/12/07 Python
爱心捐款倡议书
2014/04/14 职场文书
保护水资源的标语
2014/06/17 职场文书
干部作风建设年活动剖析材料
2014/10/23 职场文书
2015年维修电工工作总结
2015/04/25 职场文书
优质服务心得体会(共4篇)
2016/01/22 职场文书
《我是什么》教学反思
2016/02/16 职场文书
2016年党员干部廉政承诺书
2016/03/24 职场文书