[]==![]
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.