美文网首页
爲什麽[]==![]是true?

爲什麽[]==![]是true?

作者: SA_Arthur | 来源:发表于2017-04-18 18:48 被阅读0次

今天在聼《陪你读书(JavaScript WEB前端培训教程)》時,提到了一個帖子:javascript: [] == ![]答案为什么会是true?(https://www.zhihu.com/question/29615998)
試著解釋一下:
首先看代碼:
[] == ![]

  1. 根據javascript的運算符優先級,邏輯非比相等操作符優先,所以右邊“![]”先算。因爲[]是數組對象,對象的布爾值都爲true,所以[]是true,而這裏有個邏輯非,所以“![]”是false;
    [] == false

  2. 相等操作符會將等號兩邊先進行轉換,而現在右邊為布爾值,所以會將“false”轉換為數值“0”;注解(1)
    [] == toNumber(false)
    [] == 0

  3. 這時左邊是一個數組對象,所以將其轉換成原始數據類型,調用toString方法得到一個空字符串;注解(2)
    toString([]) == 0
    "" == 0

4.這時左邊已經變成一個字符串,所以要將字符串轉換為數值,空字符串轉換為數字是“0”;注解(3)
toNumber("") == 0
0 == 0
4.所以結果為true.

注解:
引用《JavaScript高級程序設計》(第3版)
(1)3.5 操作符 p51 最底下相等與不相等操作符遵循下列基本規則第1條;
(2)3.5 操作符 p52 最底下相等與不相等操作符遵循下列基本規則第3條;
(3)3.5 操作符 p52 最底下相等與不相等操作符遵循下列基本規則第2條;

相关文章

  • 爲什麽[]==![]是true?

    今天在聼《陪你读书(JavaScript WEB前端培训教程)》時,提到了一個帖子:javascript: [] ...

  • 筆記 | 一德老師說金剛經(一)

    爲什麽是“說”不是“講”? 金剛經卷內從未有“講”字出現,皆爲“說”。 什麽是“經” ? 佛教的“經”與漢人之“經...

  • 2018-05-10

    爲什麼是你?! 上瞼下垂…… 你才這麽小

  • 2020-10-22

    《富爸爸:爲什麽富人越來越富》讀書筆記+讀後感 第一部分:爲什麽富人越來越富有 第一章:我該用我的錢做什麽? “中...

  • 小記 2019-01-28

    一、怎麽想就怎麽活 李誕那期《十三邀》提到“自洽”這個詞,倒是很認同。現在的人多得是怎麽活就怎麽想,解釋自己爲什麽...

  • 不想

    爲什麽,离去之後还来叩击 是怀念,抑或…… 频频如此 何意? 归去的 就让它去吧 何必!何必?

  • 我的理想是……成爲一個平凡人

    思修課上,有一不解:爲什麽在大學生理想調查中,把“成爲一個平凡人”歸爲是虛無縹緲的理想。斯以爲,平凡才是真正的不平...

  • 啊!如此绚烂多彩的秋季 你多麽令人,厌 你多麽令人,倦 你爲世人造福 爲世人掩盖炎凉 你是多麽令人,迷 你是多麽令...

  • 超個人心理學工作坊筆記(一)

    1. 是什麽讓你走進了這次工作坊? 有人爲了瞭解自己,成長自己;有人爲了追求家庭和諧;有人爲了療愈自己的過去創...

  • 纽约的交通爲什麽不显拥堵

    在纽约市,感受不到明显的交通拥堵。除了之前,博客里写过的那些之外,细细想来,应该有如下原因: 一、地铁方便(之前有...

网友评论

      本文标题:爲什麽[]==![]是true?

      本文链接:https://www.haomeiwen.com/subject/otdqzttx.html