javascript中valueOf()和toString()区别

来源:互联网 发布:kruskal算法解题过程 编辑:程序博客网 时间:2024/04/28 13:30


valueOf():返回最适合该对象类型的原始值;
toString(): 将该对象的原始值以字符串形式返回。

这两个方法一般是交由JS去隐式调用,以满足不同的运算情况。
在数值运算里,会优先调用valueOf(),如a + b;
在字符串运算里,会优先调用toString(),如alert(c)。


代码示例:
var abc={i:10;
                 valueOf:function(){return this.i+20};
                 toString:function(){return this.valueOf()+10};
              }
alert(abc>40);//false
alert(''+abc);alert(+abc);//30,30,数值运算优先调用valueOf
alert(abc);//50,字符串运算,优先调用toString
alert('+'+abc);//+30,运算符优先
alert(Number(abc));//30,数字优于字符串
alert(String(abc));//40




1 0
原创粉丝点击