toString 和 valueOf 总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了toString 和 valueOf 总结相关的知识,希望对你有一定的参考价值。

两者的共同点与不同点:

  共同点:二者都能用来数据转换,并且在输出对象时会自动调用。

 

  不同点:二者并存的情况下,在数值运算中,优先调用了valueOf,字符串运算中,优先调用了toString,没有操作运算符的情况下,优先调用toString

 

 

所有对象继承了两个转换方法:

 

toString(),主要是把对象转换为字符串;

 

valueOf(),主要把对象转换成一个基本数据的值;

例子:

 

var obj = {};
 obj.valueOf = function()
 {
 return 10;
 }
 obj.toString = function()
 {
 return "return value";
 }
 
 var result = obj + 1;  
alert(result);//var result = obj.valueOf() + 1;

 alert(obj); //alert(obj.toString());

 

 

例子2

function obj()
 { }
 obj.prototype.toString = function(){
  return ‘dfsf‘;
 };
 obj.prototype.valueOf = function(){
  return ‘3333‘;
 };
 var e = new obj();
 var o = new obj();
 alert(o);//alert(obj.toString())   //‘dfsf‘
 alert(o+e);//alert(obj.valueOf()+obj.valueOf()) //‘3333‘+‘3333‘

 

 

 

 

 

 

以上是关于toString 和 valueOf 总结的主要内容,如果未能解决你的问题,请参考以下文章

valueOf和toString的区别

Java中区别.toString() ,(String),valueOf()方法

java.toString() ,(String),String.valueOf的区别

toString和valueOf

toString和valueOf

String String.valueOf() toString()