基本上,所有JS數據類型都擁有valueOf和toString這兩個方法,null除外。它們倆解決javascript值運算與顯示的問題。
1.用法如下:
toString()方法:返回對象的字符串表示。
function functionname( ) { [native code] }
Number
返回數字的文字表示。
String
返回 String 對象的值。
默認
返回 “[object objectname]”,其中 objectname 是對象類型的名稱。
valueOf()方法:返回指定對象的原始值。
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