精华内容
下载资源
问答
  • String.valueOf([对象]) (String) 这是标准的类型转换,将对象强制转换为String类型,前提是该对象必须能保证转成String类型,否则将抛出ClassCastException异常 toString API源码: /*** This object ...

    在Java开发中,我们经常用到将对象转换成String类型这一功能,常用的有如下三种方式

    • (String)[对象]

    • [对象].toString

    • String.valueOf([对象])

    (String)

    这是标准的类型转换,将对象强制转换为String类型,前提是 该对象必须能保证转成String类型,否则将抛出ClassCastException异常

    toString

    API源码:

    /***
     This object (which is already a string!) is itself returned.** @return 
    the string itself.*/public String toString() { return this;}

    此方法返回对象本身,在java.lang.Object类中也有toString()方法,所以Java对象都可以调用此方法,但使用的时候 必须保证要转换的对象不为null ,否则将抛出NullPointerException异常

    String.valueOf()

    API源码

    /***
     Returns the string representation of the 
    <code>Object</code> argument.** @param obj an 
    <code>Object</code>.* @return if the argument is 
    <code>null</code>, then a string equal to* 
    <code>"null"</code>; otherwise, the value of* 
    <code>obj.toString()</code> is returned.* @see 
    java.lang.Object#toString()*/public static String valueOf(Object obj) { 
    return (obj == null) ? "null" : obj.toString();}

    从上面源码可以看出,我们不用担心Object为null,但使用的时候也要小心, 当Object为null时,它的返回值是“null”,而不是null ,是有区别的。

    示例代码

    public
     class Test { public static void main(String[] args) { Object obj = new 
    Object(); String str = null;System.out.println((String) obj); // 
    ①System.out.println(str.toString()); // 
    ②System.out.println(String.valueOf(str)); // ③}}

    ①行代码使用(String)强制转换,由于是Object类型无法转换成String,所以报如下异常

    Exception
     in thread "main" java.lang.ClassCastException: java.lang.Object cannot 
    be cast to java.lang.Stringat 
    com.becoda.bkms.bus.energyindex.web.Test.main(Test.java:11)

    ②行代码使用toString()方法,由于str为null,所以报如下异常

    Exception in thread "main" java.lang.NullPointerExceptionat com.becoda.bkms.bus.energyindex.web.Test.main(Test.java:12)

    ③行代码使用String.valueOf()方法,即使str为null,也不会报错,返回字符串null

    展开全文
  • Date.prototype.toString=function(){ return 11; } Date.prototype.valueOf=function(){ ...为什么两个date对象相加调用的是其toString()方法,而两个circle对象相加,调用的却是其valueOf方法。
  • js中非原始值对象valueOf和toString的区别 这里的原始值就是string、number、布尔值、null、undefined 除了null和undefined,其他对象都...说完原始值的定义后,我们就来说说valueOf和toString区别。 toString:一定将

    js中非原始值对象valueOf和toString的区别


    这里的原始值就是string、number、布尔值、null、undefined
    除了null和undefined,其他对象都有toString()和valueOf()方法。

    tips:原始值字符串没有属性和方法(因为它们不是对象),但是可以使用 JavaScript 的属性和方法,javascript引擎可以隐式地调用这些方法,把原始值当作对象使用。

    说完原始值的定义后,我们就来说说valueOf和toString区别。

    toString:一定将所有内容转为字符串
    
    valueOf:取出对象内部的值,不进行类型转换
    

    我们都知道js所有对象均继承自Object,因此它们都有各自的toString()和valueOf()方法。

    先来举个简单的例子:

    
    
    console.log(student)   //{name: "ivan", age: 12}
    console.log(student.toString())   //[object Object]
    console.log(student.valueOf())   //{name: "ivan", age: 12}
    
    student.toString = function() {
    	return "name:" + this.name + "|age:"+this.age
    }
    student.valueOf = function() {
     	return this.age
    }
    console.log(student.toString())   // "name:ivan|age:12"
    console.log(student.valueOf())  //12
    
    

    在没有重写方法前,使用valueOf()返回的是对象本身,而toString()返回的是[object Object]

    默认情况下,toString()方法被每个Object对象继承。如果此方法在自定义对象中未被覆盖,toString()返回 “[object type]”,其中type是对象的类型。


    那么问题来了,当我们直接对对象进行操作时,到底使用的是valueOf还是toString?

    先上代码

    var good = {
    color: 'red',
    num: 5
    }
    console.log(good + 10)  //[object Object]10
    

    很明显,此处计算时先隐式地调用了toString()方法,那么是所有的计算都是这样吗?别急,我们继续往下看。

    good.valueOf = function() {
    return this.num
    }
    
    good.toString = function() {
    return "color:" + this.color + "|num:" + this.num
    }
    
    console.log("商品的数量为:" + good  )  //“商品的数量为:5”
    console.log(++good)   //6
    

    这回调用的确是对象的valueOf()方法!


    原因:
    其实对于非原始类型来说,再进行计算时,首先要转化成原始值类型。默认情况下,js内部先调用valueOf(),然后根据其返回的值进行判断。如果不是原始值类型,则接着调用toString()。譬如在刚开始我们没有覆盖对象的valueOf方法时,其返回的是对象本身,即非原始值类型。
    如果是原始值类型,则用valueOf的返回结果进行计算。

    展开全文
  • valueOf和toString区别

    2018-12-09 20:54:00
    1、valueOf()偏向于运算,toString()偏向于显示 2、对象转换时,优先调用toString() 3、强转字符串的情况下,优先调用toString()方法;强转数字的情况下优先调用valueOf() 4、正常情况下,优先调用toString() 5...
    这两个方法有意思的地方在于什么时候使用,总结如下:
    1、valueOf()偏向于运算,toString()偏向于显示
    2、对象转换时,优先调用toString()
    3、强转字符串的情况下,优先调用toString()方法;强转数字的情况下优先调用valueOf()
    4、正常情况下,优先调用toString()
    5、在有运算操作符的情况下valueOf()的优先级高于toString(),这里需要注意的是当调用valueOf()方法无法运算后还是会再调用toString()方法
     
    调用valueOf()
    对象 返回值 类型
    Array 数组本身 Array
    Boolean Boolean 值。 Boolean
    Date 存储的时间是从 1970 年 1 月 1 日午夜开始计的毫秒数 UTC。 Number
    Function 函数本身。 Function
    Number 数字值。 Number
    Object 对象本身。这是默认情况。 Object
    String 字符串 String
    调用toString()
    对象 返回值 类型
    Array 数组的元素被转换为字符串,这些字符串由逗号分隔,连接在一起。其操作与 Array.toString 和 Array.join 方法相同。 String
    Boolean 字符串“true”,“false” String
    Date 字符串日期,如"Fri Dec 23 2016 11:24:47 GMT+0800 (中国标准时间)" String
    Function 函数字符串 String
    Number 字符串形式值 String
    Object "[object Object]" String
    String 字符串 String
     

    转载于:https://www.cnblogs.com/lemonib/p/10093175.html

    展开全文
  • 基本上所有的JavaScript数据类型都有valueOf(),toString()方法,null除外,这两个方法解决了JavaScript值运算显示的问题 valueOf()会把数据类型转换成原始类型,也就是说原来是什么类型,转换后还是什么类型,...
    1. 区别
      基本上所有的JavaScript数据类型都有valueOf(),toString()方法,null除外,这两个方法解决了JavaScript值运算和显示的问题
      valueOf()会把数据类型转换成原始类型,也就是说原来是什么类型,转换后还是什么类型,日期类型除外
      toString()会把数据类型转换成string类型,也就是说不管原来是什么类型,转换后一律是string类型

    2. 使用场景
      1、valueOf()偏向于运算,toString()偏向于显示
      2、对象转换时,优先调用toString()
      3、强转字符串的情况下,优先调用toString()方法;强转数字的情况下优先调用valueOf()
      4、正常情况下,优先调用toString()
      5、在有运算操作符的情况下valueOf()的优先级高于toString(),这里需要注意的是当调用valueOf()方法无法运算后还是会再调用toString()方法

    3. 总结

      调用valueOf()

      对象 类型
      Array 数组本身 Array
      Boolean Boolean 值 Boolean
      Date 存储的时间是从 1970 年 1 月 1 日午夜开始计的毫秒数 UTC Number
      Function 函数本身 Function
      Number 数字值 Number
      Object 对象本身,这是默认情况 Object
      String 字符串 String

      调用toString()

      对象 类型
      Array 数组的元素被转换为字符串,这些字符串由逗号分隔,连接在一起。其操作与 Array.toString 和 Array.join 方法相同 String
      Boolean 字符串“true”,“false” String
      Date 字符串日期,如"Fri Dec 23 2016 11:24:47 GMT+0800 (中国标准时间)" String
      Function 函数字符串 String
      Number 字符串形式值 String
      Object “[object Object]” String
      String 字符串 String
    展开全文
  •  在JS的数据类型中有两个方法Object.prototype.valueOf Object.prototype.toString,在实例到这两个的区别是什么? 我们进行如下的实例步骤: 案例1. var test={ age:20, toString:func...
  • string.valueof和toString区别

    千次阅读 2017-10-12 01:16:30
    public static String valueOf(Object obj) { return (obj == null) ? "null" : obj.toString();...上面是源码,用valueof的方式可以避免空指针异常,因为他帮你判断了,如果是null就返回null,否则返回tostring方法
  • 1.copyValueOf与valueOf相同点: 这两者是静态方法,且都能将字符数组或者字符数组的一部分转换为字符串。 2.copyValueOf与valueOf不同点: ...3.valueOftoString区别 valueOf方法中还有个...
  • 1 (string)--> 这是标准的类型转换,将object转成String类型的值,使用这种方法时,需要注意的是类型必须能转成String类型,否则容易抛出CalssCastException异常 ...3, String.valueOf()--> 不用担心
  • <p style="text-align: left; margin: 30px 0 15px;"><strong>首先我们了解一下它们的作用</strong></p>...p style="text-align: left;...valueOf():取得此对象的原始值&l...
  • Java中parse和valueOftoString区别 鳳凰涅槃丶叨 | 浏览 736 次 推荐于2016-05-19 11:03:46 最佳答案 parse()是SimpleDateFomat里面的方法,你说的应该是parseInt()或parsefloat()这种方法吧,...
  • js valueOf toString

    2019-08-07 15:40:22
    想要弄清楚他们的区别,先思考几个问题 JS 中对象类型如何转换为基本类型 ...valueOf toString只在隐式转换时调用 在 ES5 之前,会首先调用 valueOf 方法,如果没有这个方法,会调用 toStrin...
  • 2、String.valueOf。这个方法在使用的时候是有些特殊的。一般情况下,如果是确定类型的null传入,返回的是字符串“null”,而如果直接传入null,则会发生错误。 3、(String) 字符串类型强转。需要保证的是类型可以...
  • 1.parseInt()和valueOf() Integer.parseInt()返回值是int型的,Integer.parseInt()将Integer类型解析成 int类型,返回Int类型,入参可以是String类型 Integer.valueOf()返回值是Integer型的,Integer.valueOf...
  • toString 和valueOf区别

    2020-05-18 14:49:29
    1.首先要说明的是这两种方法是...(注意:valueOf和toString方法在Date,array等对象中有些是被重写过的,所以不同对象调用此方法可能产生的操作不同,如果没有这些方法,会调用最原始的Object.prototype上的valueOf和
  • 2、String.valueOf。这个方法在使用的时候是有些特殊的。一般情况下,如果是确定类型的null传入,返回的是字符串“null”,而如果直接传入null,则会发生错误。3、(String) 字符串类型强转。需要保证的是类型可以转...
  • parseXXX()是SimpleDateFomat里面的方法,有一个参数两个参数的方法。一个参数时会按照对象数据类型不同分为parseInt(), parsefloat()parsedouble(),将字符串参数变为数字(整数、浮点数)。两个参数时则是先将...
  • String.valueOf和toString

    2013-06-02 18:40:07
    在System.out.println(str);//Object str; 这里调用的是toString()么?! 很多老师都是这么说的,但对于String类型来说,确实是有点区别的~看下图:
  • toString和valueOf区别

    2019-05-12 16:04:00
    1.toString:返回对象的字符串表示形式。 语法:objectname.toString([radix]) objectname要为其搜索字符串表示...2.valueOf:返回指定对象的基元值。 语法:object.valueOf() object引用是任何内部 JavaScript...
  • 1.valueOf ** // 返回对象的值,默认情况下返回对象本身 var obj = new Object() console.log(obj.valueOf());//返回Object console.log(obj.valueOf()===obj);//返回true //重写valueOf obj.valueOf = function...
  • toString和 String.valueOf区别 object.toString(); public String toString() { return getClass().getName() + “@” + Integer.toHexString(hashCode()); } String.valueOf(object); public static String ...
  • 将一个int类型的变量变成String类型,有以下几种方式: 1.int i = 5; 2.String s1 = "" + i; 3.String s2 = String.valueOf(i);...第三行第四行没有任何区别 public static String valueOf(int i) { return In...

空空如也

空空如也

1 2 3 4 5 ... 19
收藏数 375
精华内容 150
关键字:

valueof和tostring区别