首页 > 其他 > 详细

你了解if语句吗?

时间:2017-09-10 10:41:27      阅读:288      评论:0      收藏:0      [点我收藏+]

一、if(a)语句中的a是真是假

var bool = new Boolean(false);
if (bool) {
  console.log(‘true‘);
} else {
  console.log(‘false‘);
}

运行结果为true,因为bool是一个对象,空对象。

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

运行结果为false,因为[0]是一个引用类型,不是假值,于是进入if语句;又因为比较[0]和true前,会做隐式转换,[0]转换为数字是0,true转换为数字是1,那么0==1,结果为false是情理之中的事。

//综上
假值:0,+0,-0,NaN,"",false,undefined,null
非假值:Infinity,‘0‘,‘false‘," ",[],{},function(){}

 二、if (a && b)的含义

&&是种短路语法,求值后不一定是个Boolean类型,更不是两边转化布尔值再运算,而是a && b进行表达式求值后,然后再转换为Boolean类型。

比如 2&&3 的结果是3,不是true。

所以if(a && b),我们平常理解的那种,"如果a和b同时为真,就如何如何",是一种错误的描述方式。逻辑或 || 也是如此,先进行表达式求值,再转换为Boolean类型。

你了解if语句吗?

原文:http://www.cnblogs.com/camille666/p/js_if.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!