第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

JavaScript為什么console.log ([] == ![]) 結(jié)果為true?

JavaScript為什么console.log ([] == ![]) 結(jié)果為true?

javascript為什么console.log ([] == ![]) 結(jié)果為true?console.log([] == null);  //falseconsole.log(Boolean([])); //trueconsole.log(![]); // falseconsole.log(![] == ![]); //trueconsole.log([] == []); //false究竟這個(gè)比的機(jī)制是怎么樣的呢, 不應(yīng)該是 ![]為false , 就變成了 [] == false,那么[]不應(yīng)該隱式轉(zhuǎn)換為true嗎? 這樣不就變成了 true == false 結(jié)果應(yīng)該為false啊?問題得到了本質(zhì)上的解決,感謝一位朋友分享的知乎文章。原因是:作者:Belleve鏈接:https://www.zhihu.com/questio...來源:知乎著作權(quán)歸作者所有,轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)。首先,== 的定義是:GetValue 會(huì)獲取一個(gè)子表達(dá)式的值(消除掉左值引用),在表達(dá)式 [] == ![] 中,[] 的結(jié)果就是一個(gè)空數(shù)組的引用,而 ![] 就有意思了,它會(huì)按照 11.4.9 和 9.2 節(jié)的要求得到 false。比較的行為在 11.9.3 節(jié)里,所以翻到 11.9.3:在這段算法里,和「[] == ![]」匹配的是條件 7,所以會(huì)遞歸地調(diào)用「[] == ToNumber(false)」進(jìn)行比較。在 9.3 節(jié)中定義了 ToNumber 原語,ToNumber(false) 等于 0,于是比較變?yōu)椤竅] == 0」。在此處因?yàn)?[] 是對象,比較過程走分支 9,依「ToPrimitive([]) == 0」比較。ToPrimitive 默認(rèn)是調(diào)用 toString 方法的(依 8.2.8),于是 ToPrimitice([]) 等于空字符串。結(jié)果,[] == ![] 的比較最后落到了 ''==false 上,按照 11.9.3 中的定義會(huì)依分支 5 比較 「ToNumber('')==0」,ToNumber('') 依 9.3.1 等于 0,所以結(jié)果為 true。
查看完整描述

目前暫無任何回答

  • 0 回答
  • 0 關(guān)注
  • 1882 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)