JS的雙等和三等的區別


  在JS會碰到一個奇怪的運算符"===",之前學JAVA和C語言,只有"==",JS冒出個"===",挺奇怪的,遂google之...

  在JS中"=="和"==="是都存在的,他們都是判斷兩端的表達式是否相同,但是有一點不一樣。

  因為在JAVA和C這中強類型語言中,每一個變量使用前都得必須先被聲明並且指定類型,所以說變量和變量之間的類型是否相等,就不需要開發者去判斷了,編譯器就可以完成此任務,但是像JS這個弱語言,我可以突然半路冒出個abc變量,而這個變量又不用提前聲明,而且可以存放任意類型的的值,這就比較變態了,所以說兩個變量進行比較的時候,由於JS的特性,是可以考慮先比較類型,再比較值的,這就是"==="的作用,詳情如下:

  "=="就代表會先把兩端的變量試圖轉換成相同類型,然后再比較;"==="就代表會直接去比較類型是否相同,如果類型相同則繼續比較值是否相同。

舉個例子:
 
當Integer的1和String的"1",進行==比較的時候,兩端的變量會先轉換成相同類型,再去進行值得比較,有點JAVA里面的equals的意思;當進行===進行比較的時候,兩端的變量會先進行類型之間的比較,
如果類型不相等,直接返回false。

  

再舉個例子:

  

 當比較的兩個對象是Object類型的時候,==和===的效果是一樣的,因為兩個不同對象之間的值是無法直接進行比較的,也是無法相互轉換的,So,兩個比較全為false.


免責聲明!

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



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