关于if判断布尔类型以及a==b的情况
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。
【关于if判断布尔类型以及a==b的情况】5.String空字符串为 false,其他都为 true
6.Object均输出为true。
以上
推荐阅读
- 关于QueryWrapper|关于QueryWrapper,实现MybatisPlus多表关联查询方式
- 四首关于旅行记忆的外文歌曲
- 醒不来的梦
- 关于自我为中心的一点感想
- 「按键精灵安卓版」关于全分辨率脚本的一些理解(非游戏app)
- 关于Ruby的杂想
- 关于读书的思考
- 关于this的一些问题(1)
- 《声之形》
- C语言解方程的根和判断是否是闰年