js中“==”和“===”的區別(面試題)

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

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

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

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

  

再舉個例子:

  

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

發佈了51 篇原創文章 · 獲贊 33 · 訪問量 28萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章