[] == ![]

問題

[] == ![]; // true or false

答案

[] == ![]; // true

理解

題目所述,分三步理解

  1. "!" 運(yùn)算符優(yōu)先級(jí)比 "==" 高,先運(yùn)算,右邊運(yùn)算結(jié)果為 false,故
[] == false
  1. 其中一邊有 Bool 值作比較,先轉(zhuǎn)為 number 類型,故:
[] == 0
  1. 一邊有 number 型作比較,先把另一邊轉(zhuǎn)換成 number 類型,故:
0 == 0; // true

總結(jié)

  1. 類型相同:都是引用類型為 false,不是引用類型,判斷兩邊是否恒等。
  2. null == undefined ? 涉及 null 和 undefined 的,只有這個(gè)為 true,其他都為 false。(當(dāng)然,自身和自身比較那肯定是 true,它們又不像 NaN 那么六親不認(rèn))
  3. 一邊為 Symbol 的,都為 false。
  4. 一邊為 number 型的,把另一邊強(qiáng)轉(zhuǎn)(使用 Number())成 number 型再比較是否恒等。
  5. 一邊為 boolean 類型的,把 boolean 類型先轉(zhuǎn)換成 number 型,再執(zhí)行第 4 條。

之前寫過一篇相關(guān)的文章:對于'=='的思考

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容