doubleyong
管理员
管理员
  • 最后登录2026-05-10
  • 发帖数1198
  • 最爱沙发
  • 喜欢达人
  • 原创写手
  • 社区居民
  • 忠实会员
阅读:6807回复:0

[js]面试题 :js中两个对象如何相加?运算符两边值转换的应用

楼主#
更多 发布于:2018-08-19 08:03
题 :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 此题,原理相似

最新喜欢:

阿尔卑斯丶阿尔卑斯丶 cc.cc.
知识需要管理,知识需要分享
游客


返回顶部

公众号

公众号