博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
valueOf跟toString区别
阅读量:6942 次
发布时间:2019-06-27

本文共 1278 字,大约阅读时间需要 4 分钟。

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 日午夜开始计的毫秒数 。
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>

转载于:https://www.cnblogs.com/zz334396884/p/4960134.html

你可能感兴趣的文章
左右手坐标系与旋转正向
查看>>
hdu 2177 取(2堆)石子游戏(威佐夫博奕)
查看>>
AndroidPn服务端部分bug解决方案
查看>>
LeetCode – Refresh – LRU
查看>>
[leetcode] Subsets II
查看>>
linux nginx搭配https
查看>>
spring boot jpa 使用update 报错解决办法
查看>>
解决微信浏览器video全屏的问题
查看>>
P3373 【模板】线段树 2
查看>>
初涉MySQL
查看>>
创建外部用户_外部表
查看>>
[Django学习] Django基础(7)_分类统计
查看>>
第四次作业测试代码+018+李滨
查看>>
PMBOK学习笔记一
查看>>
Python 3.5 socket OSError: [Errno 101] Network is unreachable
查看>>
前后端分离?
查看>>
elasticsearch接口开发(新)
查看>>
Django&Admin站点&调整站点信息
查看>>
POJ2125 Destroying The Graph
查看>>
观察者模式
查看>>