溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

JavaScript與TypeScript中==和===的區(qū)別是什么

發(fā)布時(shí)間:2022-03-15 14:42:57 來(lái)源:億速云 閱讀:183 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇“JavaScript與TypeScript中==和===的區(qū)別是什么”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“JavaScript與TypeScript中==和===的區(qū)別是什么”文章吧。

先上結(jié)論,

  • 對(duì)于String, number這些基礎(chǔ)類(lèi)型,==操作符會(huì)先把兩邊的變量進(jìn)行類(lèi)型強(qiáng)制轉(zhuǎn)換成相同的類(lèi)型再比較是否相等;===操作符則不會(huì)進(jìn)行類(lèi)型轉(zhuǎn)換,而是直接進(jìn)行比較。

  • 對(duì)于array, object這些高級(jí)類(lèi)型,==和 ===是沒(méi)有區(qū)別的,因?yàn)樗鼈儽容^的是 “指針地址” 。

  • 對(duì)于基礎(chǔ)類(lèi)型和高級(jí)類(lèi)型,== 和 ===是有區(qū)別的;==操作符會(huì)先把高級(jí)類(lèi)型轉(zhuǎn)換為基礎(chǔ)類(lèi)型之后,進(jìn)行值的比較;===操作符則不會(huì)進(jìn)行轉(zhuǎn)換,類(lèi)型不同,直接返回false

也就是說(shuō),`==`操作符只要求比較兩個(gè)變量的值是否相等,`===`操作符則是要求兩個(gè)變量的值和類(lèi)型都要相同;類(lèi)似地,`!=`操作符會(huì)去做類(lèi)型強(qiáng)制轉(zhuǎn)換,`!==`操作符則不會(huì)轉(zhuǎn)換類(lèi)型。

我們寫(xiě)個(gè)基礎(chǔ)類(lèi)型變量的代碼示例一下:

66 ==  '66'; // 返回true
66 === '66' // 返回false

==操作符會(huì)把第一行里的字符串轉(zhuǎn)換成數(shù)字,與66再進(jìn)行比較,值相等,于是返回true;===操作符則不會(huì)做類(lèi)型轉(zhuǎn)換,因?yàn)樽筮厰?shù)字,右邊字符串,兩者類(lèi)型不同,就會(huì)返回false。

注意對(duì)于特殊值NaN(Not a Number),表示非數(shù)字,NaN和任何數(shù)(包括它自己)做相等比較,都會(huì)返回false,所以判斷NaN最好用isNaN()函數(shù);
而對(duì)于undefined和null,兩者的值相比較,會(huì)返回true。

代碼示例如下:

NaN == 6; // 返回false
NaN === NaN; // 返回false
null == undefined; // 返回true
null === undefined; // 返回false

最后, 由于==和!=操作符帶來(lái)的類(lèi)型隱式轉(zhuǎn)換規(guī)則非常繁瑣,還有為了避免數(shù)據(jù)類(lèi)型混淆導(dǎo)致出現(xiàn)bug,還是推薦使用===操作符和!==操作符。

js在比較的時(shí)候如果是 == 會(huì)先做類(lèi)型轉(zhuǎn)換,再判斷值得大小,如果是===類(lèi)型和值必須都相等。

JavaScript與TypeScript中==和===的區(qū)別是什么

JavaScript與TypeScript中==和===的區(qū)別是什么

以上就是關(guān)于“JavaScript與TypeScript中==和===的區(qū)別是什么”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI