关于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的情况的主要内容,如果未能解决你的问题,请参考以下文章