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

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 ;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容