JS中的==运算: [''] == false —>true


Posted in Javascript onJuly 24, 2016

JS中的==运算: [''] == false —>true

计算下面表达式的值:

[''] == false

首先,两个操作数分别是对象类型、布尔类型。根据图1,需要将布尔类型转为数字类型,而false转为数字的结果是0,所以表达式变为:

[''] == 0

两个操作数变成了对象类型、数字类型。根据图1,需要将对象类型转为原始类型:

首先调用[].valueOf(),由于数组的valueOf()方法返回自身,所以结果不是原始类型,继续调用[].toString()。

对于数组来说,toString()方法的算法,是将每个元素都转为字符串类型,然后用逗号','依次连接起来,所以最终结果是空字符串'',它是一个原始类型的值。

此时,表达式变为:

'' == 0

两个操作数变成了字符串类型、数字类型。根据图1,需要将字符串类型转为数字类型,前面说了空字符串变成数字是0。于是表达式变为:

0 == 0

到此为止,两个操作数的类型终于相同了,结果明显是true。

Javascript 相关文章推荐
下拉列表select 由左边框移动到右边示例
Dec 04 Javascript
如何防止回车(enter)键提交表单
May 11 Javascript
ECMAScript6新增值比较函数Object.is
Jun 12 Javascript
JS实现新浪博客左侧的Blog管理菜单效果代码
Oct 22 Javascript
手机图片预览插件photoswipe.js使用总结
Aug 25 Javascript
老生常谈javascript的类型转换
Oct 12 Javascript
AngularJS 在同一个界面启动多个ng-app应用模块详解
Dec 20 Javascript
基于JavaScript实现自定义滚动条
Jan 25 Javascript
javascript 删除数组元素和清空数组的简单方法
Feb 24 Javascript
Vue中的无限加载vue-infinite-loading的方法
Apr 08 Javascript
浅谈js闭包理解
Mar 28 Javascript
处理canvas绘制图片模糊问题
May 11 Javascript
JavaScript关于提高网站性能的几点建议(一)
Jul 24 #Javascript
JavaScript提高网站性能优化的建议(二)
Jul 24 #Javascript
JavaScript学习小结之使用canvas画“哆啦A梦”时钟
Jul 24 #Javascript
省市二级联动小案例讲解
Jul 24 #Javascript
基于jQuery实现多标签页切换的效果(web前端开发)
Jul 24 #Javascript
js简单实现调整网页字体大小的方法
Jul 23 #Javascript
jquery实现ajax加载超时提示的方法
Jul 23 #Javascript
You might like
ThinkPHP令牌验证实例
2014/06/18 PHP
Zend Framework页面缓存实例
2014/06/25 PHP
ThinkPHP之用户注册登录留言完整实例
2014/07/22 PHP
php include类文件超时问题处理
2015/02/06 PHP
php实现两个数组相加的方法
2015/02/17 PHP
thinkPHP3.1验证码的简单实现方法
2016/04/22 PHP
PHP中new static()与new self()的比较
2016/08/19 PHP
jqPlot jquery的页面图表绘制工具
2009/07/25 Javascript
jquery实现metro效果示例代码
2013/09/06 Javascript
extjs 如何给column 加上提示
2014/07/29 Javascript
JavaScript获取URL汇总
2015/06/08 Javascript
clipboard.js无需Flash无需依赖任何JS库实现文本复制与剪切
2015/10/10 Javascript
表单验证插件Validation应用的实例讲解
2015/10/10 Javascript
JavaScript中获取Radio被选中的值
2015/11/11 Javascript
window.open不被拦截的简单实现代码(推荐)
2016/08/04 Javascript
AngularJs bootstrap详解及示例代码
2016/09/01 Javascript
简单实现JS上传图片预览功能
2017/04/14 Javascript
Angular实现预加载延迟模块的示例
2017/10/12 Javascript
关于vue路由缓存清除在main.js中的设置
2019/11/06 Javascript
JS实现点餐自动选择框(案例分析)
2019/12/10 Javascript
node.JS事件机制与events事件模块的使用方法详解
2020/02/06 Javascript
python网页请求urllib2模块简单封装代码
2014/02/07 Python
Python编程使用NLTK进行自然语言处理详解
2017/11/16 Python
Flask web开发处理POST请求实现(登录案例)
2018/07/26 Python
使用python批量读取word文档并整理关键信息到excel表格的实例
2018/11/07 Python
python pytest进阶之xunit fixture详解
2019/06/27 Python
Window10下python3.7 安装与卸载教程图解
2019/09/30 Python
基于Python实现粒子滤波效果
2020/12/01 Python
阿迪达斯印尼官方网站:adidas印尼
2020/02/10 全球购物
全球最大运动品牌的男装、女装和童装官方库存商:A&A Sports
2021/01/17 全球购物
领导检查欢迎词
2014/01/14 职场文书
村官学习十八大感想
2014/01/15 职场文书
研发工程师岗位职责
2014/04/28 职场文书
电影建国大业观后感
2015/06/01 职场文书
暑期社会实践新闻稿
2015/07/17 职场文书
详细介绍python操作RabbitMq
2022/04/12 Python