作者:SOCHUNGKWAN | 来源:互联网 | 2023-06-14 08:36
123console.log([]==false); //输出为trueconsole.log(['1']==false);//输出为false可见,这可以很快速判断数组是否为空,但是原理上有些疑惑。
1 2 3
| console.log([]==false); //输出为true
console.log(['1']==false);//输出为false |
可见,这可以很快速判断数组是否为空,但是原理上有些疑惑。
已知:
1.相等操作符"==":先转换再比较。 如果有一个操作数是布尔值,则在比较相等性之前将其转换为数值false转换为0,true转换为1。
2.如果一个操作数是对象,另一个操作数不是,则调用对象的valueOf()方法,用得到的基本类型值进行转换。
所以[]==fasle的右边会被转换成0。那左边呢?是怎样转换的呢?