首页 > 代码库 > 【转载】js基础:关于Boolean() 与 if
【转载】js基础:关于Boolean() 与 if
原文:http://www.cnblogs.com/fang9159/archive/2012/09/14/boolean.html (侵删)
最近面试比较多,但每次我问这个问题的时候,答出来的同学并不多
var a = 0; if( a) { alert(1); }
这个问题有部分人会答alert(1), 有些人会答不执行。
结果是不执行的,但答不执行的同学也说不出为什么,他只会说以他的经验,所以在这里我觉得有必要补下js基础知识,js基础好的人可以跳过此博文。
首先说这个问题之前 我们先回忆下 Boolean();
Boolean 是个转型函数。即可以传任何值转成 boolean类型, 即返回true 和 false.
那么什么时候是true , 什么时候是false, 它是有一定规则的。
我通过一张表来表明此规则。
数据类型 | 转换为true的值 | 转换为false的值 |
Boolean | true | false |
String | 任何非空字符串 | “” |
Number | 任何非0数值 | 0和NaN |
Object | 任何对象 | null |
Undefined | undefined |
注: Undefined 没有转换为true的值。
从这里我们一目了然, Boolean(0) 返回的是 false;
那么当if语句里面没有表达式,只是某个值时 如 if (XXX) 它会自动执行Boolean(xxx)操作, 即 if(XXX) = if(Boolean(xxx))
所以我们对应上面Boolean的转换规则 ,再结合上面的题,就非常容易理解了。
这就是 if(0) 会返回false的原因。
【转载】js基础:关于Boolean() 与 if
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。