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 相关文章推荐
jQuery EasyUI 中文API Layout(Tabs)
Apr 27 Javascript
屏蔽网页右键复制和ctrl+c复制的js代码
Jan 04 Javascript
JS继承--原型链继承和类式继承
Apr 08 Javascript
js 将json字符串转换为json对象的方法解析
Nov 13 Javascript
jQuery.lazyload+masonry改良图片瀑布流代码
Jun 20 Javascript
60个很实用的jQuery代码开发技巧收集
Dec 15 Javascript
js实现文本框宽度自适应文本宽度的方法
Aug 13 Javascript
JQuery EasyUI Layout 在from布局自适应窗口大小的实现方法
May 28 Javascript
JavaScript将base64图片转换成formData并通过AJAX提交的实现方法
Oct 24 Javascript
Jquery实时监听input value的实例
Jan 26 Javascript
JS实现为动态创建的元素添加事件操作示例
Mar 17 Javascript
多页vue应用的单页面打包方法(内含打包模式的应用)
Jun 11 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
基于mysql的论坛(5)
2006/10/09 PHP
php 网页游戏开发入门教程一(webgame+design)
2009/10/26 PHP
用PHP读取超大文件的实例代码
2012/04/01 PHP
PHP数组遍历的几种常见方式总结
2019/02/15 PHP
Git命令之分支详解
2021/03/02 PHP
张孝祥JavaScript学习阶段性总结(2)--(X)HTML学习
2007/02/03 Javascript
struts2 jquery 打造无限层次的树
2009/10/23 Javascript
不使用jquery实现js打字效果示例分享
2014/01/19 Javascript
js控制多图左右滚动切换效果代码分享
2015/08/26 Javascript
js实现的星星评分功能函数
2015/12/09 Javascript
详解JS中Array对象扩展与String对象扩展
2016/01/07 Javascript
javascript 继承学习心得总结
2016/03/17 Javascript
最丑的时钟效果!js canvas时钟制作方法
2016/08/15 Javascript
自学实现angularjs依赖注入
2016/12/20 Javascript
jquery实现文字单行横移或翻转(上下、左右跳转)
2017/01/08 Javascript
jQuery实现在HTML文档加载完毕后自动执行某个事件的方法
2017/05/08 jQuery
详解Vue中watch的高级用法
2018/05/02 Javascript
解决layui中table异步数据请求不支持自定义返回数据格式的问题
2018/08/19 Javascript
JS禁用右键、禁用Ctrl+u、禁用Ctrl+s、禁用F12的实现代码
2020/12/01 Javascript
Python Web框架Flask信号机制(signals)介绍
2015/01/01 Python
在Python的Django框架下使用django-tagging的教程
2015/05/30 Python
Python Requests安装与简单运用
2016/04/07 Python
tensorflow1.0学习之模型的保存与恢复(Saver)
2018/04/23 Python
python实现的发邮件功能示例
2019/09/11 Python
python闭包、深浅拷贝、垃圾回收、with语句知识点汇总
2020/03/11 Python
html5菜单折纸效果
2014/04/22 HTML / CSS
越南母婴用品购物网站:Kids Plaza
2020/04/09 全球购物
企业治理工作自我评价
2013/09/26 职场文书
书香校园活动方案
2014/02/28 职场文书
中考冲刺决心书
2014/03/11 职场文书
市政管理求职信范文
2014/05/07 职场文书
小学语文教研活动总结
2014/07/01 职场文书
2014党员学习习主席讲话思想汇报
2014/09/15 职场文书
25句企业管理语录:助你迅速打开思路,句句经典!
2020/01/14 职场文书
JPA 通过Specification如何实现复杂查询
2021/11/23 Java/Android
Python通过loop.run_in_executor执行同步代码 同步变为异步
2022/04/11 Python