JS 字符串比較"=="與"==="區別


  最近課程油js的課程,課后習題有道關於下面 1 類似的一道題,叫比較然后判斷結果,最開始看了網上的知識點,還是有點不太懂,個人感覺模模糊糊的(當然我自己菜,是正常的),就用依稀還記得的java對象與引用進行了簡單分析,最近將會復習相關知識,如有錯誤,也會及時進行改正,當然歡迎大家的斧正。

1.關於js字符串比較:”== “   “===”,列:

      Var a=”abc”;

      Var b=”abc”;

      Var c=new String(“abc”);

      Var d=new String(“abc”);

      1.a===b =>true  沒有創建實列對象,應該是指向默認創建的對象,只要值相同都會指向同樣對象

      2.a===c =>false,c創建了一個新的對象,並指向這個對象,用”===”對比結果為false(同理,a,b與d用”===”都為false)

      3.c===d =>false 原因與2相同,c,d兩個引用指向的對象不是同一個,都是兩個新建的

     以下轉載來源為https://www.cnblogs.com/nelson-hu/p/7922731.html

2.雙等號==: 

  (1)如果兩個值類型相同,再進行三個等號(===)的比較

  (2)如果兩個值類型不同,也有可能相等,需根據以下規則進行類型轉換在比較:

    1)如果一個是null,一個是undefined,那么相等

    2)如果一個是字符串,一個是數值,把字符串轉換成數值之后再進行比較

  

3.三等號===:

  (1)如果類型不同,就一定不相等

  (2)如果兩個都是數值,並且是同一個值,那么相等;如果其中至少一個是NaN,那么不相等。(判斷一個值是否是NaN,只能使用isNaN( ) 來判斷)

  (3)如果兩個都是字符串,每個位置的字符都一樣,那么相等,否則不相等。

  (4)如果兩個值都是true,或是false,那么相等

  (5)如果兩個值都引用同一個對象或是函數,那么相等,否則不相等

  (6)如果兩個值都是null,或是undefined,那么相等

 注:轉載請注明來源,博客內容除表明內容為轉載外均為原創,雖然是一個菜鳥寫的博客,但也請尊重他人,尊重自己,謝謝。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM