[] == ![] 返回 true
2024-10-20 11:55:17
对于==来说,如果数据类型不同,就会进行隐式类型转换。
- 首先判断是否在对比
null
和undefined
,是的话就会返回true;
- 判断其中一方是否为
string
,在与number
进行比较,是的话就会将字符串转换为number
;
- 判断其中一方是否为
boolean
,是的话就会把boolean
转为number
再进行判断; - 判断其中一方是否为
object
,是的话就会把object
转为原始类型再进行判断;转为原始类型时会调用valueOf()或 toString();
其流程图如下:
因此[] == ![]
是这么来的:
- 对象的非空引用是
true
,只有null
空引用为false
- 右边的
![]
即!true,
得到false
false
转为Number
是0true
转为0- 左边
[].toString()
得到`` Number(``)
得到00 == 0
,返回true
最新文章
- ASP.NET Web API 控制器创建过程(二)
- 如果你觉得我的博客对你有帮助,请帮忙加点我所在团队博客访问量http://home.cnblogs.com/u/newbe/
- remot debug
- 与众不同 windows phone (41) - 8.0 相机和照片: 通过 AudioVideoCaptureDevice 捕获视频和音频
- IPAdr.exe破解[练手]
- Java——银行业务调度系统
- 安装package.js
- python 内置函数 getattr
- VC++编程之字符串解惑--Unicode &; MBCS
- mvc 下的 signalR使用小结
- Windows实用快捷键
- vue开发中遇到的问题集锦(2)
- [SDOI2017]遗忘的集合
- MongoDB从入门到优化
- Python 进行查询日志查询条件分析
- MySQL 组提交(group commit)
- yolov3源码darknet在vscode下调试
- [转]使用 Angular CLI 和 ng-packagr 构建一个标准的 Angular 组件库
- 解决spring boot JavaMailSender部分收件人错误导致发送失败的问题
- FFmpeg X264的preset和tune