valueOf跟toString区别

1.用法如下:
toString()方法:返回对象的字符串表示。

对象 操作
Array 将 Array 的元素转换为字符串。结果字符串由逗号分隔,且连接起来。
Boolean 如果 Boolean 值是 true,则返回 “true”。否则,返回 “false”。
Date 返回日期的文字表示法。
Error 返回一个包含相关错误消息的字符串。
Function 返回如下格式的字符串,其中 functionname 是被调用 toString 方法函数的名称:

function functionname( ) { [native code] }
Number 返回数字的文字表示。
String 返回 String 对象的值。
默认 返回 “[object objectname]”,其中 objectname 是对象类型的名称。

valueOf()方法:返回指定对象的原始值。

对象 返回值
Array 数组的元素被转换为字符串,这些字符串由逗号分隔,连接在一起。其操作与 Array.toString 和 Array.join方法相同。
Boolean Boolean 值。
Date 存储的时间是从 1970 年 1 月 1 日午夜开始计的毫秒数 UTC
Function 函数本身。
Number 数字值。
Object 对象本身。这是默认情况。
String 字符串值。

2.两者的共同点与不同点:
共同点:在 JavaScript 中,toString()方法和valueOf()方法,在输出对象时会自动调用。
不同点:二者并存的情况下,在数值运算中,优先调用了valueOf,字符串运算中,优先调用了toString。
例子1如下:
<script>
  var obj = {};
  obj.valueOf = function()
  {
    return 10;
  }
  obj.toString = function()
  {
    return "return value";
  }

var result = obj + 1;  //var result = obj.valueOf() + 1;
  alert(result);
  alert(obj);  //alert(obj.toString());
</script>
例子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()) 
    alert(o+e);//alert(obj.valueOf()+obj.valueOf())
</script>

时间: 2024-08-05 15:23:29

valueOf跟toString区别的相关文章

Javascript中valueOf与toString区别

疑问: 在JS的数据类型中有两个方法 Object.prototype.valueOf 和 Object.prototype.toString,在实例到这两个的区别是什么? 我们进行如下的实例步骤: 案例1. var test={ age:20, toString:function(){return this.age-10;}, //重写 toString() valueOf:function(){return this.age+40;} //重写 valueOf() } 运行如下代码: ale

valueOf和toString的区别

基本上所有的JavaScript数据类型都有valueOf(),toString()方法,null除外,这两个方法解决了JavaScript值运算和显示的问题 valueOf()会把数据类型转换成原始类型,也就是说原来是什么类型,转换后还是什么类型,日期类型除外 toString()会把数据类型转换成string类型,也就是说不管原来是什么类型,转换后一律是string类型 这两个方法有意思的地方在于什么时候使用,总结如下: 1.valueOf()偏向于运算,toString()偏向于显示 2.

Integer.parseInt()和Integer.valueOf()有什么区别

他们有本质区别,Integer.valueof(String s)是将一个包装类是将一个实际值为数字的变量先转成string型再将它转成Integer型的包装类对象(相当于转成了int的对象)这样转完的对象就具有方法和属性了. 而Integer.parseInt(String s)只是将是数字的字符串转成数字,注意他返回的是int型变量不具备方法和属性 Integer.parseInt()把String 型转换为Int型, Integer.valueOf()把String 型转换为Integer

关于valueOf和toString

//大概...... 前言 基本上,所有JS数据类型都拥有这两个方法,null除外.它们俩解决javascript值运算与显示的问题,重写会加大它们调用的优化. 测试分析 先看一例: var aaa = {   i: 10,   valueOf: function() { return this.i+30; },   toString: function() { return this.valueOf()+10; }  } alert(aaa > 20); // true  alert(+aaa

Simulate getter in JavaScript by valueOf and toString method

function Foo(a, b) { this.a = a; this.b = b; // simulate getter via valueOf and toString method this.sum = { valueOf: function () { return a + b }, toString: function () { return a + b } } } alert(new Foo(2, 3).sum); Simulate getter in JavaScript by

valueOf()、toString()

基本上,所有JS数据类型都拥有valueOf和toString这两个方法,null除外.它们俩解决javascript值运算与显示的问题. JavaScript 的 valueOf() 方法 valueOf() 方法可返回 Boolean 对象的原始值. 用法booleanObject.valueOf(),返回值为booleanObject 的原始布尔值.如果调用该方法的对象不是 Boolean,则抛出异常 TypeError. var boo = new Boolean(false); con

valueOf() 和 toString()

valueOf():如果存在任意原始值,返回最适合该对象类型的原始值. toString():将该对象的原始值以字符串形式返回. 这两个方法一般是交由JS去隐式调用,以满足不同的运算情况.  举个栗子:看图中(不要管那两个undefined),两种方法返回的true 颜色不同哦!因为toString()返回的是字符串,而valueOf()返回的是原始值. END valueOf() 和 toString()

String、String.valueOf、toString 它们三者的区别总结

今天在使用这个的时候发现,他们三者好像在某些场所都是可以用的,但是不免会让人想到那既然它们三者这么的相似,那么总有些什么区别吧.我也在网上找了一些资料看.自己也看了API文档,就将他们三的区别总结一下吧.用了这么长时间,才发现有这些的不同,也是挺惭愧的. 先说他们三的作用是什么吧:没什么特别的作用,就是让我们得到的对象或参数类型,按照要求转成字符串的形式. String:毫无疑问,这种就是强转形式,简单方便,效率高.java程序员可能看到效率高或许有些激动,但是它有他的不好,那就是局限性.在ja

parseInt(),parseFloat(),valueOf(),intValue(),toString方法总结

本篇文章主要讲解一下在JAVA语言中数字型字符串和数字的转换,整型数字转换成字符串,以及个别方法之间的区别. 1.parseXxx()是SimpleDateFomat里面的方法,常用的包括parseInt(),parseFloat() 使用此方法得到的原始数据类型的一个特定的字符串. parseXxx()是一个静态方法,可以有一个参数或两个. 语法: 下面给出了该方法的所有的变型: static int parseInt(String s) static int parseInt(String