关于if判断布尔类型以及a==b的情况

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于if判断布尔类型以及a==b的情况相关的知识,希望对你有一定的参考价值。

参考技术A if 语句中经常需要判断一个值的布尔类型,其中最多的情况就是a==b的情况,因此总结一下要点。

当判断a==b是否为真时,首先我们需要看a与b的数据类型。

数据类型现在有一下常见的六种。

1.数值(number):整数和小数(比如1和3.14)

2.字符串(string):字符组成的文本(比如"Hello World")

3.布尔值(boolean):true(真)和false(假)两个特定值

4.undefined:表示“未定义”或不存在,即由于目前没有定义,所以此处暂时没有任何值

5.null:表示无值,即此处的值就是“无”的状态。

6.对象(object):各种值组成的集合,可分为狭义的对象(object),数组(array)以及函数(function)。

知道了数据类型我们要开始进行比较,如果两个值的类型不同,有一下情况:

1.如果一个是null,一个是undefined,那么相等。

2.如果一个是数字,一个是字符串,先将字符串转为数字,然后比较,其中NaN==NaN为true,但是NaN===NaN为false。

3.如果一个值是true/false则将其转为1/0比较。

4.如果一个值是对象,一个是数字或字符串,则尝试使用valueOf和toString转换后比较。

5.其它均不相等。

除了a==b的情况,另一种情况即直接对于数据类型来判断布尔类型,则有一下几种情况:

1.Undefined输出为false。

2.Null输出为false。

3.布尔值(Boolean)直接进行判断。

4.Number+0, −0, 或者 NaN 为 false, 其他为 true。

5.String空字符串为 false,其他都为 true

6.Object均输出为true。

以上

js一些if语句判断条件为fasle的情况

js一些if语句判断条件为fasle的情况

之前有写一个if判断条件产生的bug,当时写逻辑处理数据是在后台给接口之前,所以自己拟定了字段值为number类型的0或者1来进行判断,最后接口出来的时候是字符串,不管0或者1都是true。 number类型的0,布尔值是false,string类型的0,布尔值是true。那么在这里想统计一些数据类型用于条件判断的情况

这里可以看到空字符串作为判断结果是false

这里可以看到number类型只有0作为判断结果是false

这里可以看到 NaN、undefined、null作为判断结果是false

这里增加一个判断变量是否未定义的方法 typeof b == "undefined" ,如果未定义返回结果是true, 已定义结果是false

以上是关于关于if判断布尔类型以及a==b的情况的主要内容,如果未能解决你的问题,请参考以下文章

什么是布尔类型

融入python-7-布尔值判断

布尔类型

js一些if语句判断条件为fasle的情况

JAVA中布尔类型的运用,flag的问题

流程控制