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分支"
相關文章
相關標籤/搜索