大家看StackOverFlow上的一个讨论,前两个答案没有看明白,大家有看懂的讲一下,我觉得第二个答案好像讲的不错。链接:https://stackoverflow.com/que...
1 回答
慕沐林林
TA贡献2016条经验 获得超9个赞
+
运算符规则:
两侧元素各自调用自身的valueOf方法得到leftValue和rightValue
leftValue或rightValue 只要有一个是字符串,那么他们两个以字符串形式拼接,(特别注意此处说的是第一步valueOf的结果)
如果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也转换成字符串与之拼接。
添加回答
举报
0/150
提交
取消