javascript中tostring()和valueof()的用法及兩者的區(qū)別
基本上,所有JS數(shù)據(jù)類型都擁有valueOf和toString這兩個(gè)方法,null除外。它們倆解決javascript值運(yùn)算與顯示的問題。
1.用法如下:
toString()方法:返回對(duì)象的字符串表示。
對(duì)象 | 操作 |
---|---|
Array | 將 Array 的元素轉(zhuǎn)換為字符串。結(jié)果字符串由逗號(hào)分隔,且連接起來。 |
Boolean | 如果 Boolean 值是 true,則返回 “true”。否則,返回 “false”。 |
Date | 返回日期的文字表示法。 |
Error | 返回一個(gè)包含相關(guān)錯(cuò)誤消息的字符串。 |
Function | 返回如下格式的字符串,其中 functionname 是被調(diào)用 toString 方法函數(shù)的名稱:
|
Number | 返回?cái)?shù)字的文字表示。 |
String | 返回 String 對(duì)象的值。 |
默認(rèn) | 返回 “[object objectname] ”,其中 objectname 是對(duì)象類型的名稱。 |
valueOf()方法:返回指定對(duì)象的原始值。
對(duì)象 | 返回值 |
---|---|
Array | 數(shù)組的元素被轉(zhuǎn)換為字符串,這些字符串由逗號(hào)分隔,連接在一起。其操作與 Array.toString 和 Array.join方法相同。 |
Boolean | Boolean 值。 |
Date | 存儲(chǔ)的時(shí)間是從 1970 年 1 月 1 日午夜開始計(jì)的毫秒數(shù) UTC。 |
Function | 函數(shù)本身。 |
Number | 數(shù)字值。 |
Object | 對(duì)象本身。這是默認(rèn)情況。 |
String | 字符串值。 |
2.兩者的共同點(diǎn)與不同點(diǎn):
共同點(diǎn):在 JavaScript 中,toString()方法和valueOf()方法,在輸出對(duì)象時(shí)會(huì)自動(dòng)調(diào)用。
不同點(diǎn):二者并存的情況下,在數(shù)值運(yùn)算中,優(yōu)先調(diào)用了valueOf,字符串運(yùn)算中,優(yōu)先調(diào)用了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一定將所有內(nèi)容轉(zhuǎn)為字符串
2. valueOf取出對(duì)象內(nèi)部的值,不進(jìn)行類型轉(zhuǎn)換
用途的差別:
1. valueOf專用于算數(shù)計(jì)算和關(guān)系運(yùn)算
2. toString專用于輸出字符串
共同的缺點(diǎn):無法獲取null和undefined的值
PS:Java中parse()和valueOf(),toString()的區(qū)別
1.parse()是SimpleDateFomat里面的方法,你說的應(yīng)該是parseInt()或parsefloat()這種方法吧,
顧名思義 比如說parseInt()就是把String類型轉(zhuǎn)化為int類型。
如
String a= "123";
int b = Integer.parseInt(a);
這樣b就等于123了。
2.ValueOf()方法比如說 Integer.valueOf() 是把String類型轉(zhuǎn)化為Integer類型(注意:是Integer類型,而不是int類型,int類型是表示數(shù)字的簡(jiǎn)單類型,Integer類型是一個(gè)引用的復(fù)雜類型)
如:
String a= "123"; Integer c =Integer.valueOf(a); //Integer類型可以用intValue方法轉(zhuǎn)化為int類型 int b =c.intValue();
這時(shí)候這個(gè)b就等于123了
3. toString()可以把一個(gè)引用類型轉(zhuǎn)化為String字符串類型。
下面舉個(gè)例子與2相反,把Integer轉(zhuǎn)化為String類型:
Integer a = new Integer(123);
String b =a.toString();
這時(shí)候b就是 "123" 了
int
parseInt()
String intValue()
ValueOf()
Integer
相關(guān)文章
JavaScript獲取對(duì)象key的幾種方法和區(qū)別
這篇文章主要介紹了JavaScript獲取對(duì)象key的幾種方法和區(qū)別,下面文章更多的相關(guān)資料需要的小伙伴可以參考一下,希望對(duì)你有所幫助2022-03-03微信小程序?qū)崿F(xiàn)下滑到底部自動(dòng)翻頁功能
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)下滑到底部自動(dòng)翻頁功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03javascript 特性檢測(cè)并非瀏覽器檢測(cè)
NCZ在他的同名博客《Feature detection is not browser detection》中,講述了一直以來前端開發(fā)中的一個(gè)熱門技術(shù)——檢測(cè)用戶的瀏覽器平臺(tái),并詳細(xì)地?cái)⒄f歷史發(fā)展以及各種辦法的優(yōu)缺點(diǎn)。2010-01-01微信實(shí)現(xiàn)自動(dòng)跳轉(zhuǎn)到用其他瀏覽器打開指定APP下載
這篇文章主要介紹了微信實(shí)現(xiàn)自動(dòng)跳轉(zhuǎn)到用其他瀏覽器打開指定APP下載,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-02-02webpack實(shí)現(xiàn)熱加載自動(dòng)刷新的方法
本文介紹了webpack實(shí)現(xiàn)熱加載自動(dòng)刷新的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07通過正則格式化url查詢字符串實(shí)現(xiàn)代碼
看到項(xiàng)目里通過js數(shù)組split方法格式化查詢字符串的,突發(fā)奇想為什么不能用正則呢,性能如何?感興趣的朋友可以研究下哦2012-12-12Javascript 判斷 object 的特定類轉(zhuǎn)載
Javascript 判斷 object 的特定類轉(zhuǎn)載...2007-02-02