課程
/前端開發
/JavaScript
/JavaScript深入淺出
[] == []? // false
[] == ![]? // true?
[] == false // true
2018-03-31
源自:JavaScript深入淺出 1-3
正在回答
看了網上的答案,我說一下我的理解:
1). []==[]?兩個值都是對象時, 比較的是兩個引用值在內存中是否是同一個對象.所以是false
2).[]==![] 因為! 優先級比==高,所以我們先看 ![] , !是轉變成布爾值,js中[]布爾值是true,所以![]為false,現在到判斷==, 現在變成判斷[]==false. 這時候[]不會變成布爾值,即true,會按照js標準 []看成0.于是最終轉變為0==false,答案就出來了true.
3).看第二個后面
如果還是不懂就百度一下吧
qq_執念妳_0 提問者
舉報
由淺入深學習JS語言特性,且解析JS常見誤區,從入門到掌握
2 回答為什么countMap1[t1]會true?什么情況下會false
4 回答configurable為false的時候就無法再變回true?
2 回答case3是不是有錯誤瀏覽器顯示是true,老師給的卻是false
1 回答我想問一下 testdate.js里 expect 為啥每次都要跟它的false true去對比??
4 回答[]==[] 結果輸出“false”
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2018-04-01
看了網上的答案,我說一下我的理解:
1). []==[]?兩個值都是對象時, 比較的是兩個引用值在內存中是否是同一個對象.所以是false
2).[]==![] 因為! 優先級比==高,所以我們先看 ![] , !是轉變成布爾值,js中[]布爾值是true,所以![]為false,現在到判斷==, 現在變成判斷[]==false. 這時候[]不會變成布爾值,即true,會按照js標準 []看成0.于是最終轉變為0==false,答案就出來了true.
3).看第二個后面
如果還是不懂就百度一下吧