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

大家看StackOverFlow上的一个讨论,前两个答案没有看明白,大家有看懂的讲一下,我觉得第二个答案好像讲的不错。
链接:https://stackoverflow.com/que...

隔江千里
浏览 809回答 1
1回答

慕沐林林

+运算符规则:两侧元素各自调用自身的valueOf方法得到leftValue和rightValueleftValue或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也转换成字符串与之拼接。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript