值类型与引用类型数据运算
值类型的数据和引用类型的数据进行运算的时候,会遵循如下步骤:
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