丝袜人妻一区二区三区_少妇福利无码视频_亚洲理论片在线观看_一级毛片国产A级片

當(dāng)前位置:首頁 > 旅游指南

腦殼疼 JS 中令人腦殼疼的 == 與 === 區(qū)別到底是什么? 4字節(jié) 4字節(jié) 今天

對(duì)我來說,平等就是平等,所以第一次接觸JS中的三個(gè)等號(hào)就很迷茫。大多數(shù)編程語言都有雙等號(hào)“= =”,但沒有三等號(hào)“= = =”。

以下是雙等號(hào)和三等號(hào)之間更正式的區(qū)別:

“如果需要判斷操作數(shù)是否同類型,值是否相等,使用嚴(yán)格相等運(yùn)算符[= = =]。

否則,使用標(biāo)準(zhǔn)的等式運(yùn)算符[= =],它允許您比較兩個(gè)操作數(shù)的值,即使它們是不同的類型。"

- MDN網(wǎng)絡(luò)文檔

認(rèn)為理解它的關(guān)鍵在于理解“類型轉(zhuǎn)換”,這是“動(dòng)態(tài)類型語言”香草Java中的一個(gè)奇怪概念。

之所以有類型轉(zhuǎn)換,是因?yàn)镴S希望防止編程錯(cuò)誤,例如將數(shù)字與字符串進(jìn)行比較:

“在Java中使用雙等號(hào)時(shí),我們是在測(cè)試不精確的等式。雙等號(hào)也帶來了類型轉(zhuǎn)換。

強(qiáng)制轉(zhuǎn)換意味著操作數(shù)只有在轉(zhuǎn)換為相同類型時(shí)才能進(jìn)行比較。"

換句話說,由于類型轉(zhuǎn)換,不同類型的值可以通過= =進(jìn)行比較,但是字符串和數(shù)字永遠(yuǎn)不會(huì)通過= = =嚴(yán)格相等。

例如:

console . log(Number(" 7 ")-7 = = 0);// true

console . log(Number(" 7 ")-7 = = = 0);// true

console . log(Number(" 7 ")-7 = = = Number(" 0 "));// true

console . log(" 7 "-7 = = " 0 ");// true

console . log(" 7 "-7 = = " 0 ");// false

Java中的真與假

在Java中,我們有六個(gè)false值:false、0,“”(空 string)、null、undefined和NaN(不是數(shù)字)。這六個(gè)偽值有什么關(guān)系?

將false、0和“”與(= =)進(jìn)行比較,結(jié)果為真,且不嚴(yán)格相等;Null和undefined只等于它們自己;NaN不等于任何假值,包括它本身?!?/p>

Derek Austin博士對(duì)Java中錯(cuò)誤比較的所有排列

console . log(false = = false);// true

console . log(false = = = false);// true

console . log(false = = 0);// true - false,0和“”大致相等

console . log(false = = = 0);// false

console . log(false = = " ");// true - false,0和“”大致相等

console . log(false = = " ");// false

console . log(false = = null);// false

console . log(false = = = null);// false

console . log(false = = undefined);// false

console . log(false = = = undefined);// false

console . log(false = = NAn);// false

console . log(false = = = NAn);// false

console . log(0 = = 0);// true

console . log(0 = = = 0);// true

console . log(0 = = " ");// true - false,0和“”大致相等

console . log(0 = = " ");// false

console . log(0 = = null);// false

console . log(0 = = = null);// false

console . log(0 = = undefined);// false

console.log(0 ===未定義);// false

console . log(0 = = NAn);// false

console . log(0 = = = NAn);// false

console . log(“= =”);// true

console . log(" = = " = " ");// true

console . log(" = = = null);// false

console . log(" = = " = null);// false

console . log(" = " =未定義);// false

console . log(" = = = undefined);// false

console . log(" = " = NAn);// false

console . log(" = = " = NAn);// false

console . log(null = = null);// true

console . log(null = = = null);// true

console . log(null = = undefined);// true - null大致等于未定義

console.log(null ===未定義);// false

console . log(null = = NAn);// false

console . log(null = = = NAn);// false

console . log(undefined = = undefined);// true

console . log(undefined = = = undefined);// true

console . log(undefined = = NAn);// false

console . log(undefined = = = NAn);// false

console . log(NAn = = NAn);// false - NaN不等于NaN,并且

console . log(NAn = = = NAn);// false - NaN不等于自身

JS中的假值雖然這么精彩,但幸運(yùn)的是,除了這些假值以外的所有值都是真的:

在Java中,真值是在布爾類型的上下文中被認(rèn)為是“真”的所有值。除非定義為false,否則所有值都為true,例如false、0、“”、null、undefined和NaN。

ECMA怎么樣?

如果有興趣,下面是Java使用的具體算法。

嚴(yán)格相等運(yùn)算符

嚴(yán)格相等運(yùn)算符(= = = and!= =)使用嚴(yán)格的等式比較算法來比較兩個(gè)操作數(shù):

11.9.6嚴(yán)格相等比較算法

當(dāng)比較x===y,x和y為值時(shí),表達(dá)式返回true或false,表達(dá)式執(zhí)行如下:

1.如果類型(x)和類型(y)不同,則返回false。

2.如果類型(x)未定義,則返回真。

3.如果類型(x)為空,返回真。

4.如果類型(x)是一個(gè)數(shù)字,那么

→ a .如果x是NaN,則返回false。

→ B .如果y是NaN,則返回false。

→ C .如果x和y的數(shù)值相等,則返回true。

→ D .如果x為+0,y為0,則返回true。

→ e .如果x為0,y為+0,則返回true。

→ F .返回false。

5.如果Type(x)是字符串,如果X和Y中的字符序列完全相同(長度相同,字符位置相同),則返回true;否則,返回false。

6.如果類型(x)是布爾型,如果x和y都為真或假,則返回真;否則,返回false。

7.如果X和Y引用同一個(gè)對(duì)象,返回true;否則,返回false。

注-這個(gè)算法d如果FERS從相同的價(jià)值算法(9.12)在其處理有符號(hào)的零和南數(shù)。

標(biāo)準(zhǔn)等式運(yùn)算符

標(biāo)準(zhǔn)等式運(yùn)算符(= =和!=)使用抽象等式比較算法來比較兩個(gè)操作數(shù):

11.9.3抽象等式比較算法(抽象等式比較算法)

Compare x == y,x和y是值,表達(dá)式返回true或false。表達(dá)式執(zhí)行如下:

1.如果類型(x)與類型(y)相同,則

→ a .如果類型(x)未定義,返回真。

→ B .如果類型(x)為空,則返回真。

→如果類型(x)是一個(gè)數(shù)字,那么

→→→ i .如果x是NaN,則返回false。

→→→ ii。如果y是NaN,則返回false。

→→→ iii。如果x和y的數(shù)值相等,則返回true。

→→→ iv。如果x為+0,y為0,則返回true。

→→→ v .如果x為0,y為+0,則返回true。

→ → vi。返回false。

→ D .如果Type(x)是字符串,如果x和y中的字符序列完全相同(長度相同,字符位置相同),則返回true;否則,返回false。

→ e .如果Type(x)為boolean,如果x和y都為true或false,則返回true;否則,返回false。

→ F .如果x和y指的是同一個(gè)對(duì)象,返回true;否則,返回false。

2.如果x為null,y未定義,則返回true。

3.如果x未定義,y為空,則返回true。

4.如果類型(x)是數(shù)字,類型(y)是字符串,則返回x == ToNumber(y)的結(jié)果。

5.如果類型(x)是字符串,類型(y)是數(shù)字,則返回?cái)?shù)字(x)= y的結(jié)果。

6.如果類型(x)是布爾值,則返回?cái)?shù)字(x)= y的結(jié)果。

7.如果類型(y)是布爾值,則返回x == ToNumber(y)的結(jié)果。

8.如果類型(x)是數(shù)字或字符串,類型(y)是對(duì)象,則返回x == ToPrimitive(y)的結(jié)果。

9.如果類型(x)是對(duì)象,類型(y)是數(shù)字或字符串,則返回Toprimitive(x)= y的結(jié)果。

10.返回false。

注1——鑒于上述平等的定義:

字符串比較可以通過以下方式強(qiáng)制進(jìn)行:“+ a == "" + b”。

可以通過以下方式強(qiáng)制進(jìn)行數(shù)值比較:+a == +b。

布爾比較可以通過以下方式強(qiáng)制執(zhí)行:!a ==!b.

注2 —等式運(yùn)算符維護(hù)以下不變量:

答!= B相當(dāng)于!(A == B)。

A == B相當(dāng)于B == A,除了A和B的求值順序

注3:等式運(yùn)算符不總是可傳遞的。例如,可能有兩個(gè)不同的字符串對(duì)象,每個(gè)對(duì)象代表相同的字符串值;通過==運(yùn)算符,每個(gè)字符串對(duì)象將被視為等于字符串值,但是這兩個(gè)字符串對(duì)象并不相等。例如:

新字符串(“a”)= =“a”和“a”= =新字符串(“a”)均為真。

新字符串(“a”)= =新字符串(“a”)為假。

注4:字符串比較對(duì)代碼單元值序列使用簡單的相等性測(cè)試。沒有嘗試使用在unicode規(guī)范中定義的更復(fù)雜的、面向語義的字符或字符串相等性和排序順序的定義。根據(jù)Unicode標(biāo)準(zhǔn),哪些是標(biāo)準(zhǔn)相等的,哪些是不相等的。實(shí)際上,該算法假設(shè)兩個(gè)字符串都已經(jīng)是規(guī)范化形式。

結(jié)論

一般來說我更喜歡用= = =和!= =,除非必須使用= =和!=,如檢查空的值。

此外,在檢查空的值時(shí),請(qǐng)記住,與雙等號(hào)相比,null和undefined是相等的。

1.《腦殼疼 JS 中令人腦殼疼的 == 與 === 區(qū)別到底是什么? 4字節(jié) 4字節(jié) 今天》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀點(diǎn),與本網(wǎng)站無關(guān),侵刪請(qǐng)聯(lián)系頁腳下方聯(lián)系方式。

2.《腦殼疼 JS 中令人腦殼疼的 == 與 === 區(qū)別到底是什么? 4字節(jié) 4字節(jié) 今天》僅供讀者參考,本網(wǎng)站未對(duì)該內(nèi)容進(jìn)行證實(shí),對(duì)其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。

3.文章轉(zhuǎn)載時(shí)請(qǐng)保留本站內(nèi)容來源地址,http://f99ss.com/junshi/1146178.html

上一篇

女子愛美模仿達(dá)康書記雙眼皮 才過一周就不敢出門

下一篇

共享單車監(jiān)管意見出臺(tái),ofo后來居上引領(lǐng)衛(wèi)星定位和智能鎖技術(shù)

撿石頭價(jià)值近百萬  什么類型的石頭在哪里可以撿到

撿石頭價(jià)值近百萬 什么類型的石頭在哪里可以撿到

最近在泰國樂坤,一個(gè)人本來想去海上釣魚,但是在河堤上發(fā)現(xiàn)了一塊奇怪的石頭。他撿了12大一小塊回家,大概3斤左右。事實(shí)上,這些不起眼的石頭是非常罕見的海琥珀。當(dāng)它們?nèi)紵龝r(shí),它們會(huì)流出黃色的液體,放在水中會(huì)漂浮。海琥珀可以用來做香水,村民這堆“石頭...

游戲女玩家達(dá)3億 什么類型的游戲最受歡迎

《2019中國游戲產(chǎn)業(yè)報(bào)告》于12月25日正式發(fā)布。報(bào)告顯示,2019年中國游戲用戶數(shù)量達(dá)到6.4億,比2018年增長2.5%,其中女性用戶3億,占國內(nèi)游戲用戶總數(shù)的46.2%。2019年,中國游戲市場(chǎng)實(shí)際銷售收入2308.8億元,同比增長7....

游戲用戶超6億 具體什么情況什么類型游戲玩家最多

游戲用戶超過6億1月2日,中國音樂與數(shù)字協(xié)會(huì)游戲工作委員會(huì)正式發(fā)布《2019中國游戲產(chǎn)業(yè)報(bào)告》,指出中國游戲數(shù)量已達(dá)6.4億,已趨于飽和。從用戶規(guī)模來看,隨著中國游戲產(chǎn)業(yè)的發(fā)展,隨著各種游戲類型的發(fā)展,受眾不斷擴(kuò)大,同時(shí)游戲的推廣和推廣力度不斷...

表面溫度探頭 溫度傳感器制成的溫度探頭類型

NTC熱敏電阻溫度傳感器應(yīng)用廣泛,更加經(jīng)濟(jì)。由于這種復(fù)合氧化物陶瓷材料的成分,它具有負(fù)溫度系數(shù),即NTC。隨著溫度的升高,電阻減小,這與PT100傳感器的測(cè)量特性完全相反。 溫度傳感器有三種類型的溫度探頭: 1.用于測(cè)量物體表面溫度的表面探針??諝怏w溫度探頭和表面探頭測(cè)量表面溫度時(shí),探頭前端...

均值不等式公式 公務(wù)員考試行測(cè)備考:均值不等式的巧妙應(yīng)用

2015年春季公務(wù)員考試臨近,很多考生加入了備考的行列。中公教育根據(jù)歷年考試內(nèi)容,專門整合了2015年春季公務(wù)員考試的答題技巧,幫助考生輕松把握備考機(jī)會(huì)。祝各位考生能在公務(wù)員考試中抓住機(jī)會(huì),以“公”的身份上岸。 均值不等式是數(shù)學(xué)中的一個(gè)重要公式:公式內(nèi)容為Hn ≤Gn ≤An ≤ Qn,即調(diào)...

肺癌圖片 看不懂CT圖像?各種類型肺癌典型表現(xiàn)!

  • 肺癌圖片 看不懂CT圖像?各種類型肺癌典型表現(xiàn)!
  • 肺癌圖片 看不懂CT圖像?各種類型肺癌典型表現(xiàn)!
  • 肺癌圖片 看不懂CT圖像?各種類型肺癌典型表現(xiàn)!

國際跳棋小游戲 任天堂switch發(fā)布世界游戲51 共計(jì)世界上51款類型的小游戲

  • 國際跳棋小游戲 任天堂switch發(fā)布世界游戲51 共計(jì)世界上51款類型的小游戲
  • 國際跳棋小游戲 任天堂switch發(fā)布世界游戲51 共計(jì)世界上51款類型的小游戲
  • 國際跳棋小游戲 任天堂switch發(fā)布世界游戲51 共計(jì)世界上51款類型的小游戲
戶籍類型怎么填 房產(chǎn)證類型如何選?房產(chǎn)證上多個(gè)姓名怎么填?  網(wǎng)上報(bào)名入學(xué),遇到這些問題怎么辦?

戶籍類型怎么填 房產(chǎn)證類型如何選?房產(chǎn)證上多個(gè)姓名怎么填? 網(wǎng)上報(bào)名入學(xué),遇到這些問題怎么辦?

我市義務(wù)教育階段學(xué)校招生網(wǎng)上報(bào)名系統(tǒng)開通以來,家長在報(bào)名過程中遇到了各種“疑難雜癥”。株洲市教育局昨天給予了回復(fù)和指導(dǎo)。 5月20日,通過鏈接進(jìn)行注冊(cè),但顯示“查詢的學(xué)生信息不存在”。是什么情況? 答:系統(tǒng)于5月20日試運(yùn)行,5月21日正式上線。21日前注冊(cè)的信息系統(tǒng)已自動(dòng)刪除。請(qǐng)重新注冊(cè)。...