关于if(xx)和 a==b的判断

if条件判断

if...else 条件判断的语法如下:

if (条件)

{

当条件为 true 时执行的代码

}

else

{

当条件不为 true 时执行的代码

}

而在if条件中是6种由数据类型(ES6 新增了第七种 Symbol 类型的值)数值、字符串、布尔值、对象、undefined和null以及其中出现的运算符组成,根据运算规则对条件进行运算,但是最终的运算结果需要转换成布尔值,然后再进行判断TRUE还是FALSE,再执行代码。所以关键的就是了解这6种数据类型是怎么转化为布尔值的,以及运算符的优先级和运算规则。

我们可以记住一些常用的规则以便帮助我们进行判断:

在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 ;


你可能感兴趣的:(关于if(xx)和 a==b的判断)