javascript中tostring()和valueof()的用法及兩者的區別

NO IMAGE

基本上,所有JS資料型別都擁有valueOf和toString這兩個方法,null除外。它們倆解決javascript值運算與顯示的問題。

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方法相同。
BooleanBoolean 值。
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專用於輸出字串

共同的缺點:無法獲取null和undefined的值

PS:Java中parse()和valueOf(),toString()的區別

1.parse()是SimpleDateFomat裡面的方法,你說的應該是parseInt()或parsefloat()這種方法吧,

顧名思義 比如說parseInt()就是把String型別轉化為int型別。

String a= “123”;

 int b = Integer.parseInt(a);

這樣b就等於123了。

2.ValueOf()方法比如說 Integer.valueOf() 是把String型別轉化為Integer型別(注意:是Integer型別,而不是int型別,int型別是表示數字的簡單型別,Integer型別是一個引用的複雜型別)
如:


String a= "123";
Integer c =Integer.valueOf(a);
//Integer型別可以用intValue方法轉化為int型別
int b =c.intValue();

這時候這個b就等於123了

3. toString()可以把一個引用型別轉化為String字串型別。

下面舉個例子與2相反,把Integer轉化為String型別:

Integer a = new Integer(123);
String b =a.toString();

這時候b就是 “123” 了

                       int
          parseInt()
String                      intValue() 
         ValueOf()           
                    Integer

您可能感興趣的文章:

通過JS獲取Request.QueryString()引數的值實現方法淺談js中StringBuffer類的實現方法及使用關於JSON.parse(),JSON.stringify(),jQuery.parseJSON()的用法Javascript型別系統之String字串型別詳解JS 物件(Object)和字串(String)互轉方法JSON的String字串與Java的List列表物件的相互轉換深入淺析JSON.parse()、JSON.stringify()和eval()的作用詳解String字串匹配javascript 正規表示式js中substr,substring,indexOf,lastIndexOf,split,replace的用法詳解javascript入門之string物件【新手必看】