zoukankan      html  css  js  c++  java
  • 探究toString()和valueOf()

    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>

      ****toString vs valueOf的差别:

                  返回值类型的差别:

                  1. toString一定将所有内容转为字符串

                  2. valueOf取出对象内部的值,不进行类型转换

              用途的差别:

                  1. valueOf专用于算数计算和关系运算

                  2. toString专用于输出字符串

     

                  共同的缺点:无法获取nullundefined的值

  • 相关阅读:
    数组的学习(一)
    Servlet是线程安全吗?
    MySql用户管理:添加用户、授权、删除用户
    泛型(二)
    泛型(一)
    Spring MVC
    spring框架
    mybatis基础
    Hibernate 基础
    Java局部类
  • 原文地址:https://www.cnblogs.com/12606huchao/p/4966961.html
Copyright © 2011-2022 走看看