if(xx)的判断
JavaScript 遇到预期为布尔值的地方(比如if语句的条件部分),就会将非布尔值的参数自动转换为布尔值。系统内部会自动调用Boolean函数。
在if条件中是6种由数据类型(ES6 新增了第七种 Symbol 类型的值)数值、字符串、布尔值、对象、undefined和null以及其中出现的运算符组成,根据运算规则对条件进行运算,但是最终的运算结果需要转换成布尔值,然后再进行判断TRUE还是FALSE,再执行代码。所以关键的就是了解这6种数据类型是怎么转化为布尔值的。
类型 | 结果 |
---|---|
Undefined | false |
Null | false |
Boolean | 直接判断 |
Number | +0, −0, 或者 NaN 为 false, 其他为 true |
String | 空字符串为 false,其他都为 true |
Object | true |
我们可以记住一些常用的规则以便帮助我们进行判断:
- 在JavaScript中,If 语句判断为false的变量值为:
false, 0, 0.0, null, undefined - 其他变量值判断为true:
true, 1, [任何字串/数字] - 取反运算符(!),用于将布尔值变为相反值,即true变成false,false变成true。
- 且运算符(&&)的运算规则是:如果第一个运算子的布尔值为true,则返回第二个运算子的值(注意是值,不是布尔值);如果第一个运算子的布尔值为false,则直接返回第一个运算子的值,且不再对第二个运算子求值。
- 或运算符(||)的运算规则是:如果第一个运算子的布尔值为true,则返回第一个运算子的值,且不再对第二个运算子求值;如果第一个运算子的布尔值为false,则返回第二个运算子的值。
除此之外还有很多运算符及其规则,在编程的过程中如果忘记了,应该及时去查阅相应的文档。
变量相等的判断
在javascript判断两个变量值是否相等,可以使用==(相等)
操作符 或者===(绝对相等)
操作符
==(相等)
操作符:
“相等”操作符,简单判断2个变量值是否相等,变量类型不一致时,会做类型转换,即忽略变量的类型进行比较
- 例子1
var str1 = "666" ; // 字符串
var str2 = "666" ; // 字符串
alert(str1==str2) ; // 打印出 true,即相等
- 例子2
var str1 = 666 ; // 整型
var str2 = "666" ; // 字符串
alert(str1==str2) ; // 打印出 true,即相等
差别:
在例子1中,2个变量都是字符串类型(因为有引号),所以比较相等,打印出true;
在例子2中,变量str1是整型,但是在做==比较时,javascript 发现 2个变量类型不一致,先做了类型转换(调用str1的toString方法,把str1转成字段串),再比较2者,因此值也相等,打印出true;
===(绝对相等)
操作符:
“绝对相等”操作符,先比较2个变量类型是否一致,不一致返回false,一致时,再比较2个变量的值是否相等
- 例子1
var str1 = "666" ; // 字符串
var str2 = "666" ; // 字符串
alert(str1==str2) ; // 打印出 true,即相等
- 例子2
var str1 = 666 ; // 整型
var str2 = "666" ; // 字符串
alert(str1==str2) ; // 打印出 false,即不相等
差别:
在例子1中,2个变量都是字符串类型,且值都相等,因此打印出true;
在例子2中,变量1是整型,变量2是字符串,类型不相等,因此打印出false ;
网友评论