A-A+

javascript Boolean() 与 if 学习笔记

2016年01月21日 前端设计 评论 1 条 阅读 10 views 次

Boolean 是个转型函数,即可以传任何值转成 boolean类型,即返回true 和 false,那么什么时候是true,什么时候是false,它是有一定规则的,最近面试比较多,但每次我问这个问题的时候,答出来的同学并不多,代码如下:

  1. var a = 0;  
  2.   
  3. if( a) {  
  4.      alert(1);    
  5. }  

这个问题有部分人会答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的原因.

标签:

1 条留言  访客:1 条  博主:0 条

  1. 香港云主机

    javascript Boolean() 与 if,我只知道 if ,javascript Boolean()从来都没有接触过

给我留言