每日一题(二十)var a = [0]; if(a){ console.log(a==true); }else{ console.log(a); }

本文通过一个具体的JavaScript代码示例,深入探讨了在if语句和比较运算符中,数组和布尔值之间的类型转换规则,以及如何正确理解这些转换对于程序逻辑的影响。

题目描述:写出执行结果并解释原因

var a = [0];
if(a){
    console.log(a==true);
}else{
    console.log(a);
}

答案:

false

解析:

  • 当 a 出现在 if 的条件中时,被转成布尔值,而 Boolean([0]) 为 true
  • 所以就进行下一步判断 a==true,true被转为1 ,1 和 a 不相等

相等和不相等---先转换在比较。全等和不全等---仅比较而不转换

相等==和不相等!=这两个操作符都会先转换操作数(通常称为强制转型),然后再比较他们的相等性。

在转换不同的数据类型时,相等和不相等操作符遵循下列基本规则:

如果由一个操作数是布尔值,则在比较相等性之前先将其转换为数值---false转换为0,而true转换为1;
如果一个操作数是字符串,另一个操作数是数值,在比较相等性之前先将字符串转换为数值;
如果一个操作数是对象,另一个操作数不是,则调用对象的valueOf()方法,用得到的基本类型值按照前面的规则进行比较;
+

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值