日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JavaScript等于 == 与 恒等于 === 的区别

發布時間:2023/12/2 javascript 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaScript等于 == 与 恒等于 === 的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? ?JavaScript?是弱類型語言,這就意味著,等于操作符會為了比較兩個值而進行強制類型轉換。注意0的相等運算,例如:

""???????????==???"0"???????????//?false?? 0????????????==???""????????????//?true?? 0????????????==???"0"???????????//?true?? false????????==???"false"???????//?false?? false????????==???"0"???????????//?true?? false????????==???undefined?????//?false?? false????????==???null??????????//?false?? null?????????==???undefined?????//?true?? "?\t\r\n"????==???0?????????????//?true??

?而恒等于不像普通的等于操作符,不會進行強制類型轉換。這樣的話上述的結果就不太相同了:

""???????????===???"0"???????????//?false?? 0????????????===???""????????????//?false?? 0????????????===???"0"???????????//?false?? false????????===???"false"???????//?false?? false????????===???"0"???????????//?false?? false????????===???undefined?????//?false?? false????????===???null??????????//?false?? null?????????===???undefined?????//?false?? "?\t\r\n"????===???0?????????????//?false??

?而對于對象,當用恒等于的時候,用于判斷是否是同一個對象而不是單純的判斷值是否相等。

所以,以后要注意了。判斷的時候盡量還是使用恒等于,這樣不用進行強制轉換比較

一言以蔽之:==先轉換類型再比較,===先判斷類型,如果不是同一類型直接為false。

===表示恒等于,比較的兩邊要絕對的相同

alert(0 == ""); // true

alert(0 == false); // true

alert("" == false); // true

?

alert(0 === ""); // false

alert(0 === false); // false

alert("" === false); // false

先說 ===,這個比較簡單,具體比較規則如下:

1、如果類型不同,就[不相等]?

2、如果兩個都是數值,并且是同一個值,那么[相等];(!例外)的是,如果其中至少一個是NaN,那么[不相等]。(判斷一個值是否是NaN,只能用isNaN()來判斷)?

3、如果兩個都是字符串,每個位置的字符都一樣,那么[相等];否則[不相等]。?

4、如果兩個值都是true,或者都是false,那么[相等]。?

5、如果兩個值都引用同一個對象或函數,那么[相等];否則[不相等]。?

6、如果兩個值都是null,或者都是undefined,那么[相等]。

再說 ==,具體比較規則如下:

1、如果兩個值類型相同,進行 === 比較,比較規則同上?

2、如果兩個值類型不同,他們可能相等。根據下面規則進行類型轉換再比較:?

a、如果一個是null、一個是undefined,那么[相等]。?

b、如果一個是字符串,一個是數值,把字符串轉換成數值再進行比較。?

c、如果任一值是 true,把它轉換成 1 再比較;如果任一值是 false,把它轉換成 0 再比較。?

d、如果一個是對象,另一個是數值或字符串,把對象轉換成基礎類型的值再比較。對象轉換成基礎類型,利用它的toString或者valueOf方法。js核心內置類,會嘗試valueOf先于toString;例外的是Date,Date利用的是toString轉換。非js核心的對象,令說(比較麻煩,我也不大懂)?

e、任何其他組合(array數組等),都[不相等]。

總結

以上是生活随笔為你收集整理的JavaScript等于 == 与 恒等于 === 的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。