首頁  >  文章  >  web前端  >  JavaScript中==和===的差別是什麼

JavaScript中==和===的差別是什麼

青灯夜游
青灯夜游原創
2018-11-19 17:27:254384瀏覽

這篇文章我們帶給大家的內容是介紹JavaScript中==和===運算子之間的差異是什麼?有一定的參考價值,有需要的朋友可以參考一下,希望對你們有幫助。

首先我們要知道:JavaScript中'=='運算子表示抽象相等;而,'===='運算子表示嚴格相等

#。

下面我們來看看JavaScript中==和===運算子的差異是什麼?

'=='運算子會在進行相等比較之前會進行必要值的型別轉換。簡單來說,就是先把值轉換成一樣的型別再進行相等比較。就算比較的值的類型不相同,也可以透過強制轉換類型成一樣的,不會發生錯誤。

'===='運算符,它不會執行類型轉換,因此如果兩個值不是相同類型,那麼當比較時,它將傳回false。如果比較兩個變量,它們的類型彼此不相容,則會產生編譯錯誤。

範例1:數字9與字元「9」比較

<script> 
	// 字符 "3" 被转换成 数字 3
	//因此返回 true 
	document.write(9 == "9"); 
	
	// 换行
	document.write(&#39;<br>&#39;) 

	// 这里没有类型转换发生,
	// 因此返回 false 
	document.write(9 === "9"); 
</script>

運行結果:

JavaScript中==和===的差別是什麼

範例2:字串文字和字符串連物件比較

<script> 
	// 字符串对象类型转换为字符串文字
	// 因此,返回 true
	document.write("hello" == new String("hello")); 

	// 换行
	document.write(&#39;<br>&#39;) 

	// 没有进行类型的强制转换
	//因此,返回 false 
	document.write("hello" === new String("hello")); 
</script>

運行結果:

JavaScript中==和===的差別是什麼

##例3:布林類型與字串

<script> 
   document.write(&#39;==:<br>&#39;);
   // 这里 字符“1” 被转换为true(布尔类型)
      // 因此,返回 true
   document.write(true == &#39;1&#39;);
   document.write(&#39;<br>&#39;) 
   // 这里 数字1 被转换为true(布尔类型)
      // 因此,返回 true
   document.write(true == 1);
   document.write(&#39;<br>&#39;) 
  
   // 没有类型转换,因此 返回 false   
   document.write(&#39;==:<br>&#39;); 
   document.write(true === &#39;1&#39;);
   document.write(&#39;<br>&#39;)
   document.write(true === 1);
</script>

 運行結果:

JavaScript中==和===的差別是什麼

說明:

1、對於string,number等基礎型別比較時,==和===是有差別的

==,是進行「值」的比較;===,是進行「值」和類型的比較,必須值」和型別都一致,才會回傳true。

2、對於Array,Object等高階類型比較時,==和===是沒有區別的

3、基礎型別與高階型別比較時,==和===是有差別的

對於==,會將高階轉換為基礎類型,是進行「值」比較

對於===,因為類型不同,所以結果為false

總結:

以上就是本篇文章的全部內容,希望能對大家的學習有所幫助。

###

以上是JavaScript中==和===的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn