你了解if语句吗?

Posted 专注前端开发

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你了解if语句吗?相关的知识,希望对你有一定的参考价值。

一、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语句吗?的主要内容,如果未能解决你的问题,请参考以下文章

在 JSP 中的 <% %> 代码片段中添加链接

20个简洁的 JS 代码片段

这种用法不正确吗?

20个简洁的 JS 代码片段

编写代码片段的更简洁的方法

SQL Select 语句的用法