值類型與引用類型數據運算
值類型的數據和引用類型的數據進行運算的時候,會遵循如下步驟:
1.調用引用類型數據的valueOf方法,獲取返回值,嘗試和值類型的數據進行運算,如果可以計算,就得出結果。
2.如果不能計算,繼續調用這個引用類型數據的toString方法,獲取返回值進行計算。
valueOf方法說明如下:
toString方法說明如下:
應用實例如下:
//第一題
console.log({} + 1);
//分析步驟:
//1.console.log({}.valueOf() + 1)
//2.console.log({}.toString() + 1)
//3.console.log("[object Object]" + 1)
//4.console.log("[object Object]1")
//輸出結果 [object Object]1
//第二題
console.log([] + 1);
//分析步驟:
//1. console.log([].valueOf() + 1);
//2. console.log([].toString() + 1);
//3. console.log("" + 1);
//4. console.log("1")
//輸出結果 1
//第三題
console.log([] == ![]);
//分析步驟:
//1. console.log([] == false)
//2. console.log([].valueOf() == false);
//3. console.log([].toString() == false);
//4. console.log("" == false);
//輸出結果 true
//第四題
console.log({} == !{});
//分析步驟:
//1.console.log({} == false);
//2.console.log({}.valueOf() == false);
//3.console.log({}.toString() == false)
//4.console.log("[object Object]" == false)
//輸出結果 false