文章详情页
javascript - 【快速判断数组为空】[]==false 为什么返回true?
浏览:176日期:2023-03-14 14:09:48
问题描述
console.log([]==false); //输出为trueconsole.log([’1’]==false);//输出为false
可见,这可以很快速判断数组是否为空,但是原理上有些疑惑。已知:
1.相等操作符'==':先转换再比较。 如果有一个操作数是布尔值,则在比较相等性之前将其转换为数值false转换为0,true转换为1。
2.如果一个操作数是对象,另一个操作数不是,则调用对象的valueOf()方法,用得到的基本类型值进行转换。
所以[]==fasle的右边会被转换成0。那左边呢?是怎样转换的呢?
问题解答
回答1:这个送给你,javascript 的对比表格:Relational and Equality Operators
![javascript - 【快速判断数组为空】[]==false 为什么返回true?](http://www.haobala.com/attached/image/news/202302/104448523d.png)
http://tech.youzan.com/javasc... 看完你会懂的
回答3:因为他们都会转化为布尔值进行比较, []==false => true == false //false
回答4:先转为数字0,然后再对比吧。
回答5:讲道理判断数组为空用这个是不行的吧!
if([]){ alert(’1111’);}
我以为它不会弹,结果还是弹了。大多数情况还是length来判断。当然length判断元素个数的时候也是坑!
回答6:只能说js的内部机制是空数组就是false所以false==false成立啊!那非空数组自然转换成true了true==false就不成立啊!有啥难理解的吗?
标签:
JavaScript
相关文章:
1. mysql - sql数据还原2. python - 请问各位大神,如何在爬虫用post选择该网页的省份变量option并且得到选择该option的网页呢3. JavaScript如何循序渐进,有效的学习?看不下去怎么办?4. 网站在移动的环境下手机,pc打不开5. 想写一个python分析统计apache 日志文件的脚本6. Thinkphp 下载地址找不到了?7. 请教!!!本地laravel项目我想本地运行,怎么在本地访问控制器里的方法。8. python - django在nginx里模板输出html标签问题9. javascript - 关于<a>元素与<input>元素的JS事件运行问题10. nginx - 使用wordpress搭建博客,怎么实现真实服务器使用HTTP,然后使用UPYUN的HTTPS加密?
排行榜

网公网安备