国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

JS中==、===你分清楚了嗎

瀏覽:92日期:2024-05-22 08:03:11

==、===都是相等運算符,這個大家應(yīng)該都知道,但二者有什么區(qū)別呢?其實==是相等,===是嚴(yán)格相等,那他們有什么本質(zhì)的區(qū)別呢?下面我就給大家細(xì)細(xì)道來。

=:賦值運算符 ==:判斷是否相等:忽略了類型進(jìn)行值的比較。 ===:判斷是否相等:先進(jìn)行值的比較,如果值相等,再去比較類型。即帶有類型的值的比較。

==相等

比較兩個值的時候,有兩種情況,一種如果兩個值的類型相同,就直接比較;另一種如果兩個值得類型不同,則會嘗試改變?yōu)橄嗤念愋驮谶M(jìn)行比較第一種很好理解,直接比較完事兒,第二種就更有趣一些,它到底是怎么轉(zhuǎn)換的呢?下面我們一一列舉

數(shù)字和字符串比較

99 == ’’99'

大家猜一猜結(jié)果是什么True?False?

結(jié)果為True其實JS在數(shù)字和字符串比較時,都是把字符串轉(zhuǎn)換為數(shù)字,再對數(shù)字進(jìn)行比較的,舉個列子

99 == 'chuichui'

JS是怎么轉(zhuǎn)換的呢?

99 == NaN // false

JS嘗試轉(zhuǎn)換字符串’chuichui’,但是該字符串并不能轉(zhuǎn)換為數(shù)字,這時候轉(zhuǎn)換的結(jié)果就為NaN

布爾值和其他類型比較

其實JS在布爾值和其他類型比較時,都是把布爾值轉(zhuǎn)換為數(shù)字,再進(jìn)行比較的,舉個列子

1 == true↓↓↓↓↓↓1 == 1

JS會將true轉(zhuǎn)化為數(shù)字1,再做比較那'1' == true又是怎么比較的呢?

'1' == true↓↓↓↓↓↓'1' == 1↓↓↓↓↓↓1 == 1 // true

轉(zhuǎn)換順序

將true轉(zhuǎn)換為1 將字符串“1”轉(zhuǎn)換為數(shù)字1 數(shù)字1和數(shù)字1比較

null和undefined比較

null == undefined

大家猜一猜,結(jié)果是True?False?

結(jié)果為True是不是感覺很奇怪,但規(guī)則就是這樣。我們可以理解為都是“沒有值”只不過一個是沒有值得變量,一個是沒有值的對象,因此他們相似

小心

有一個需要注意的地方,有些轉(zhuǎn)換你可能猝不及防

false == ''True?False?

結(jié)果為True轉(zhuǎn)換過程

false轉(zhuǎn)化為0 空字符串''轉(zhuǎn)換為0,沒錯就是0 ! 數(shù)字0和數(shù)字0比較

下面我們在說說嚴(yán)格相等 ===

===嚴(yán)格相等

有了前面的相等的定義,我想大家能猜個八九不離十,嚴(yán)格相等就是類型和值完全相同,這里不存在以上所存在的轉(zhuǎn)換問題

最后

操作數(shù)1 == 操作數(shù)2, 操作數(shù)1 === 操作數(shù)2

比較過程:

雙等號==:

(1)如果兩個值類型相同,再進(jìn)行三個等號(===)的比較

(2)如果兩個值類型不同,也有可能相等,需根據(jù)以下規(guī)則進(jìn)行類型轉(zhuǎn)換在比較:

1)如果一個是null,一個是undefined,那么相等

2)如果一個是字符串,一個是數(shù)值,把字符串轉(zhuǎn)換成數(shù)值之后再進(jìn)行比較

三等號===:

(1)如果類型不同,就一定不相等

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

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

(4)如果兩個值都是true,或是false,那么相等

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

(6)如果兩個值都是null,或是undefined,那么相等

到此這篇關(guān)于JS中==、===的文章就介紹到這了,更多相關(guān)JS中==、===內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 高邮市| 吴忠市| 汾西县| 德州市| 沐川县| 板桥市| 会泽县| 攀枝花市| 杨浦区| 林甸县| 革吉县| 屏东县| 南阳市| 舒城县| 虎林市| 屏南县| 武邑县| 陆丰市| 韶山市| 登封市| 偃师市| 泗水县| 凌云县| 三台县| 保亭| 屏边| 习水县| 福泉市| 荣成市| 柞水县| 怀来县| 烟台市| 道真| 齐齐哈尔市| 阿拉善左旗| 二连浩特市| 贡山| 永和县| 婺源县| 沁阳市| 斗六市|