|
题 :x,y 为两个对象,如何让它相加??
var x={a:5};
var y={b:7};
var z=x+y;
// z=12思考?
思考? 思考? 代码测试后,发现输出的结果为:"[object Object][object Object]" why? why? why? 解析,其实这题考的是运算符的知识,+号两边如果都是数据,则直接进行相加,否则,会把两边的类型转换成字符串,然而object使用toString转换出来为"[object Object]",所以得到如上的结果。 解决:如实现如上题的要求,最后数据数字相加的结果,就需要重写toString的方法 ,可参考以下代码: var x = {
i: 5,
toString: function () {
return this.i;
}
}
var y = {
i: 7,
toString: function () {
return this.i;
}
}
var z=x+y;
console.log(z);
与 面试题 :(a ==1 && a== 2 && a==3) 有可能是 true 此题,原理相似 |
|
|