为了账号安全,请及时绑定邮箱和手机立即绑定

关于js的toString和valueOf的调用问题

关于js的toString和valueOf的调用问题

隔江千里 2018-08-18 14:46:53
大家看StackOverFlow上的一个讨论,前两个答案没有看明白,大家有看懂的讲一下,我觉得第二个答案好像讲的不错。链接:https://stackoverflow.com/que...
查看完整描述

1 回答

?
慕沐林林

TA贡献2016条经验 获得超9个赞

+运算符规则:

  1. 两侧元素各自调用自身的valueOf方法得到leftValue和rightValue

  2. leftValue或rightValue 只要有一个是字符串,那么他们两个以字符串形式拼接,(特别注意此处说的是第一步valueOf的结果)

  3. 如果leftValue和rightValue都不是字符串,他们两个将转换成number进行计算。

附原题

var x = {toString: function() {return "foo"; },         valueOf: function() {return 42; }};window.console.log ("x="+x);  // x=42window.console.log ("x="+x.toString()); //x=foo

"x=".valueOf() 为“x=", x.valueOf()为42, 因为”x=“是字符串,故42也转换成字符串与之拼接。


查看完整回答
反对 回复 2018-08-19
  • 1 回答
  • 0 关注
  • 807 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信