Web前端开发QQ群 110939958-业余程序员

[]==false之原理

问题来源

var a = [];

if(a) alert("true");//true

if(a == true) alert("true");//false

原理

js引擎会先计算括号内的表达式然后将结果转换为布尔值,所以

if(a) => if(!!a) => true

if(a == true) => if(Number(a) == true) => if(0 == true) => false

注: 在比较的两个值中,如果有一个是布尔类型,那么另外一个值将会先被转换为数字类型再与其比较。

参考: 双等号的比较原理

所以,下面这个就会有看起来奇怪的结果

[] == ![] //true

没有评论 to “[]==false之原理”

留下评论:

昵称(必须):
邮箱地址 (不会被公开) (必须):
站点
验证码:
评论 (必须)
XHTML: 您可以使用这些标记: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>