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 相关文章推荐
JSON扫盲帖 JSON.as类教程
Feb 16 Javascript
javascript针对DOM的应用实例(一)
Apr 15 Javascript
判断复选框是否被选中的两种方法
Jun 04 Javascript
JavaScript跨平台的开源框架NativeScript
Mar 24 Javascript
jQuery使用post方法提交数据实例
Mar 25 Javascript
jQuery实现带延迟效果的滑动菜单代码
Sep 02 Javascript
jQuery实现仿微软首页感应鼠标变化滑动窗口效果
Oct 08 Javascript
Vue数据驱动模拟实现2
Jan 11 Javascript
URL中“#” “?” &“”号的作用浅析
Feb 04 Javascript
vue异步axios获取的数据渲染到页面的方法
Aug 09 Javascript
JavaScript查看代码运行效率console.time()与console.timeEnd()用法
Jan 18 Javascript
js实现图片上传即时显示效果
Sep 30 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类
2006/07/15 PHP
php利用反射实现插件机制的方法
2015/03/14 PHP
php操作MongoDB类实例
2015/06/17 PHP
Yii使用Captcha验证码的方法
2015/12/28 PHP
PHP简单实现DES加密解密的方法
2016/07/12 PHP
ThinkPHP的SAE开发相关注意事项详解
2016/10/09 PHP
jquery 获取自定义属性(attr和prop)的实现代码
2012/06/27 Javascript
jquery动态增加text元素以及删除文本内容实例代码
2013/07/01 Javascript
JavaScript数据类型检测代码分享
2015/01/26 Javascript
用Move.js配合创建CSS3动画的入门指引
2015/07/22 Javascript
JavaScript数组去重的五种方法
2015/11/05 Javascript
JavaScript的六种继承方式(推荐)
2017/06/26 Javascript
原生js实现密码输入框值的显示隐藏
2017/07/17 Javascript
vuejs实现标签选项卡动态更改css样式的方法
2018/05/31 Javascript
jQuery判断自定义属性data-val用法示例
2019/01/07 jQuery
Pyramid将models.py文件的内容分布到多个文件的方法
2013/11/27 Python
Python中__call__用法实例
2014/08/29 Python
python用装饰器自动注册Tornado路由详解
2017/02/14 Python
Python计时相关操作详解【time,datetime】
2017/05/26 Python
利用python将xml文件解析成html文件的实现方法
2017/12/22 Python
tensorflow实现对图片的读取的示例代码
2018/02/12 Python
python实现图书管理系统
2018/03/12 Python
python3 读取Excel表格中的数据
2018/10/16 Python
解决python中无法自动补全代码的问题
2018/12/04 Python
python中metaclass原理与用法详解
2019/06/25 Python
Python closure闭包解释及其注意点详解
2019/08/28 Python
python3图片文件批量重命名处理
2019/10/31 Python
如何使用python进行pdf文件分割
2019/11/11 Python
Python变量作用域LEGB用法解析
2020/02/04 Python
Python编写单元测试代码实例
2020/09/10 Python
编辑找工作求职信分享
2014/01/03 职场文书
教师新年寄语
2014/04/03 职场文书
家长写给孩子的评语
2014/04/18 职场文书
新学期开学标语
2014/06/30 职场文书
出差报告范文
2014/11/06 职场文书
2014年学生会生活部工作总结
2014/11/07 职场文书