js中==和===区别、switch case语句在比较的时候用的是全等,即condition === case

简单来讲: == 表明相同, ===表明严格相同, 为啥这么说呢, 函数

这么理解: 当进行双等号比较时候: 先检查两个操做数数据类型,若是相同, 则进行===比较, 若是不一样, 则愿意为你进行一次类型转换, 转换成相同类型后再进行比较, 而===比较时, 若是类型不一样,直接就是false.对象

 

操做数1 == 操做数2,  操做数1 === 操做数2字符串

比较过程:it

  双等号==: io

  (1)若是两个值类型相同,再进行三个等号(===)的比较console

  (2)若是两个值类型不一样,也有可能相等,需根据如下规则进行类型转换在比较:变量

    1)若是一个是null,一个是undefined,那么相等数据类型

    2)若是一个是字符串,一个是数值,把字符串转换成数值以后再进行比较引用

  

  三等号===:数据

  (1)若是类型不一样,就必定不相等

  (2)若是两个都是数值,而且是同一个值,那么相等;若是其中至少一个是NaN,那么不相等。(判断一个值是不是NaN,只能使用isNaN( ) 来判断)

  (3)若是两个都是字符串,每一个位置的字符都同样,那么相等,不然不相等。

  (4)若是两个值都是true,或是false,那么相等

  (5)若是两个值都引用同一个对象或是函数,那么相等,不然不相等

  (6)若是两个值都是null,或是undefined,那么相等

 

=========================================================================================

在js中,switch case语句在比较的时候用的是全等,即condition === case

1 let a = "1";
 2 switch(a){
 3   case 1:
 4     console.log("执行case分支");
 5     break;
 6   default:
 7     console.log("执行default分支")                     
 8 }
 9 
10 //因为switch case语句在比较的时候用的是全等,而且因为a是字符串1,case里是数字1,二者类型不相等,因此上面的代码将会执行default分支,输出"执行default分支"
11 //若是咱们把case里的数字1换成字符串1,就会执行case分支,即输出"执行case分支"
12 //一样的,把变量a的值换成数字1,也会执行case分支,即输出"执行case分支"
相关文章
相关标签/搜索