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

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

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()方法,用得到的基本类型值按照前面的规则进行比较;
+

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值