js中兩個表達式運算結果的解析: []==![] 和{}==!{}


 []==![] 

1. 感嘆號!的優先級最高,因此先計算![], 其結果為 false, 所以表達式被轉換成: []==false.
3. 遇到Boolean類型,需要先轉換成Number類型,所以表達是變成 []==0
4. 0是基礎類型,[]是引用類型,所以引用類型需要轉換成基礎類型:[]轉換的結果是 ([]).valueOf().toString(),為 “”, 所以表達式為  ""==0
5. 字符串需要轉換成Number,為0. 所以表達式變成 0==0.
6.最后結果為true.
 
{}==!{}
 
1. 感嘆號!的優先級最高,因此先計算!{}, 其結果為 false, 所以表達式被轉換成: {}==false.
3. 遇到Boolean類型,需要先轉換成Number類型,所以表達是變成 []==0
4. 0是基礎類型,{}是引用類型,所以引用類型需要轉換成基礎類型:
    {}轉換的結果是 ({}).valueOf().toString(),為 “[object Object]”, 所以表達式為  "[object Object]"==0
5. 字符串需要轉換成Number,為NaN. 所以表達式變成 0==0.
6.最后結果為false.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM