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

歡迎訪問 生活随笔!

生活随笔

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

javascript

java 恒等于_JavaScript中 ==(等于) 与 === (恒等于) 的区别

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

一直以來沒去注意這個恒等于(三個等號:===)的運算符。后來實際工作中遇到,就想了解一下這個等于和恒等于到底有什么區(qū)別。

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

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

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

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

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

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

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

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

再說 ==,具體比較規(guī)則如下:

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

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

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

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

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

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

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

當一個人找不到出路的時候,最好的辦法就是將當前能做好的事情做到極致,做到無人能及。

總結

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

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