空数组转换成布尔型问题


数据类型 转换为true的值 转换为false的值
Boolean true false
String 任何非空字符串 ""空字符串
Number 任何非0数字值(包括无穷大) 0和NaN
Object 任何对象 null
Undefined n/a undefined

数组属于对象类型,所以空的数组转换成布尔型是true

相同的是,空的对象转换成布尔型也是true

1.

空数组[]和空对象{}都是object类型,因此直接用于if判断条件时就会被转化为true。

2.

任意值与布尔值比较,都会将两边的值转化为Number。

注意:

如果将空数组[]与布尔值false比较,false转化为0,而空数组[]也转化为0,因此[] == false的判断得到true。
如果将空对象{}与布尔值false比较,false转化为0,而空对象{}转化为NaN,由于NaN与任何数都不相等,因此{} == false的判断得到false。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM