国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

經(jīng)典面試題之“a==1 && a==2 && a==3 為true”

Bryan / 1972人閱讀

摘要:所以能用的地方盡量用,相等運(yùn)算符隱藏的類型轉(zhuǎn)換,會(huì)帶來(lái)一些違反直覺(jué)的結(jié)果。

這是在國(guó)外的一道面試題看到的,大家先自己想一下,在什么情況下這個(gè)判斷會(huì)成立?
按正常思維想,這個(gè)是不可能成立的,但nothing is impossible,首先貼上正確答案代碼

const a = {
  i: 1,
  toString: function () {
    return a.i++;
  }
}
console.log(a == 1 && a == 2 && a == 3)


這里做判斷時(shí),首先會(huì)調(diào)用valueOf函數(shù),數(shù)組調(diào)用valueOf后返回的還是數(shù)組本身,就會(huì)再次調(diào)用toString函數(shù),這里是重寫了toString方法,并且return的是a.i++,所以每調(diào)用一次,都會(huì)在上次的值得基礎(chǔ)上自加一次,
所以結(jié)果為true。
那么舉一反三,這道題再變一下,“a===1 && a===2 && a===3 為true”改成這樣,還能不能成立呢?
最后結(jié)果:

這是因?yàn)椤?==”代表全等(嚴(yán)格運(yùn)算符),即值和類型都相等,其原理為“===”不會(huì)進(jìn)行隱式轉(zhuǎn)換,所以也就不會(huì)調(diào)用valueOf等方法了,而“==”為值相等(相等運(yùn)算符),所以在比較不同類型的數(shù)據(jù)時(shí),相等運(yùn)算符會(huì)先將數(shù)據(jù)進(jìn)行類型轉(zhuǎn)換,然后再用嚴(yán)格相等運(yùn)算符比較。
所以能用“===”的地方盡量用“===”,相等運(yùn)算符隱藏的類型轉(zhuǎn)換,會(huì)帶來(lái)一些違反直覺(jué)的結(jié)果。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/105129.html

相關(guān)文章

  • 用9種辦法解決 JS 閉包經(jīng)典面試題之 for 循環(huán)取 i

    摘要:閉包正確的說(shuō)應(yīng)該是指一個(gè)閉包域每當(dāng)聲明了一個(gè)函數(shù)它就產(chǎn)生了一個(gè)閉包域可以解釋為每個(gè)函數(shù)都有自己的函數(shù)棧每個(gè)閉包域?qū)ο蠖加幸粋€(gè)不是屬性內(nèi)默認(rèn)有個(gè)名為的全局引用有了這個(gè)引用就可以直接調(diào)用的屬性或方法凡是在閉包域內(nèi)聲明的變量或方法外部無(wú)法直接訪問(wèn) 閉包 正確的說(shuō),應(yīng)該是指一個(gè)閉包域,每當(dāng)聲明了一個(gè)函數(shù),它就產(chǎn)生了一個(gè)閉包域(可以解釋為每個(gè)函數(shù)都有自己的函數(shù)棧),每個(gè)閉包域(Function...

    Betta 評(píng)論0 收藏0
  • 你不能錯(cuò)過(guò)的前端面試題合集

    摘要:收集的一些前端面試題從面試題發(fā)現(xiàn)不足,進(jìn)而查漏補(bǔ)缺,比通過(guò)面試更難得及各大互聯(lián)網(wǎng)公司前端筆試面試題篇及各大互聯(lián)網(wǎng)公司前端筆試面試題篇面試題個(gè)和個(gè)經(jīng)典面試題前端開發(fā)面試題如何面試前端工程師很重要個(gè)變態(tài)題解析如何通過(guò)餓了么面試輕 收集的一些前端面試題 從面試題發(fā)現(xiàn)不足,進(jìn)而查漏補(bǔ)缺,比通過(guò)面試更難得 1 BAT及各大互聯(lián)網(wǎng)公司2014前端筆試面試題--Html,Css篇 2 BAT...

    ninefive 評(píng)論0 收藏0
  • 你不能錯(cuò)過(guò)的前端面試題合集

    摘要:收集的一些前端面試題從面試題發(fā)現(xiàn)不足,進(jìn)而查漏補(bǔ)缺,比通過(guò)面試更難得及各大互聯(lián)網(wǎng)公司前端筆試面試題篇及各大互聯(lián)網(wǎng)公司前端筆試面試題篇面試題個(gè)和個(gè)經(jīng)典面試題前端開發(fā)面試題如何面試前端工程師很重要個(gè)變態(tài)題解析如何通過(guò)餓了么面試輕 收集的一些前端面試題 從面試題發(fā)現(xiàn)不足,進(jìn)而查漏補(bǔ)缺,比通過(guò)面試更難得 1 BAT及各大互聯(lián)網(wǎng)公司2014前端筆試面試題--Html,Css篇 2 BAT...

    darkbaby123 評(píng)論0 收藏0
  • JS面試題之比較兩個(gè)對(duì)象是否相等?

    摘要:這是我在一次面試中,被面試官所提問(wèn)的一道題在這次面試題中相等指的是對(duì)象的屬性個(gè)數(shù)值相等有這樣兩個(gè)李德華張德華我能想到的一種方案解答過(guò)程的思考由于沒(méi)有,我只能通過(guò)轉(zhuǎn)化成數(shù)組進(jìn)入第二步,對(duì)象中的屬性在另一個(gè)中是否存在。 這是我在一次面試中,被面試官所提問(wèn)的一道題 在這次面試題中 相等:指的是對(duì)象的屬性個(gè)數(shù)值相等 有這樣兩個(gè)obj let obj1 = { name:李德華, ...

    wangbjun 評(píng)論0 收藏0
  • 面試題之從敲入 URL 到瀏覽器渲染完成

    摘要:響應(yīng)由三個(gè)部分組成,分別是狀態(tài)行消息報(bào)頭響應(yīng)正文。詳情參考小汪之前寫的文章瀏覽器內(nèi)核之解釋器和模型解釋解釋過(guò)程是指從字符串經(jīng)過(guò)解釋器處理后變成渲染引擎內(nèi)部規(guī)則的表示過(guò)程。 showImg(https://segmentfault.com/img/remote/1460000016404846); 前言 小汪最近在看【W(wǎng)ebKit 技術(shù)內(nèi)幕】一書,說(shuō)實(shí)話,這本書寫的太官方了,不通俗易懂。...

    MAX_zuo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<