Javascript toString()、toLocaleString()、valueOf()三個方法的區別


  Array、Boolean、Date、Number等對象都具有toString()、toLocaleString()、valueOf()三個方法,那這三個方法有什么區別???

一、JS Array

  例子:

var array = new Array("niu","li","na");
console.log(array.valueOf());
console.log(array.toString());
console.log(array.toLocaleString());

  結果:

  

  • valueOf:返回數組本身

  • toString():把數組轉換為字符串,並返回結果,每一項以逗號分割。

  • toLocalString():把數組轉換為本地數組,並返回結果。

二、JS Boolean

  例子:

var boolean = new Boolean();
console.log(boolean.valueOf());
console.log(boolean.toString());

  結果:

  

  • valueOf:返回 Boolean 對象的原始值。

  • toString():根據原始布爾值或者 booleanObject 對象的值返回字符串 "true" 或 "false"。默認為"false"。

  • toLocalString():Boolean對象沒有toLocalString()方法。但是在Boolean對象上使用這個方法也不會報錯。

三、JS Date

  例子:

var date = new Date();
console.log(date.valueOf());
console.log(date.toString());
console.log(date.toLocaleString());

  結果:

  

  • valueOf:返回 Date 對象的原始值,以毫秒表示。

  • toString():把 Date 對象轉換為字符串,並返回結果。使用本地時間表示。

  • toLocalString():可根據本地時間把 Date 對象轉換為字符串,並返回結果,返回的字符串根據本地規則格式化。

四、JS Math

  例子:

console.log(Math.PI.valueOf());

  結果:

  • valueOf:返回 Math 對象的原始值。 

五、JS Number

 例子:

var num = new Number(1337);
console.log(num.valueOf());
console.log(num.toString());
console.log(num.toLocaleString());

  結果:

 

  • valueOf:返回一個 Number 對象的基本數字值。

  • toString():把數字轉換為字符串,使用指定的基數。

  • toLocalString():把數字轉換為字符串,使用本地數字格式順序。

六、JS String

  例子: 

var string = new String("abc");
console.log(string.valueOf());
console.log(string.toString());

  結果:

  • valueOf:返回某個字符串對象的原始值。

  • toString():返回字符串。  

七、toString()方法與toLocalString()方法區別:

  • toLocalString()是調用每個數組元素的 toLocaleString() 方法,然后使用地區特定的分隔符把生成的字符串連接起來,形成一個字符串。

  • toString()方法獲取的是String(傳統字符串),而toLocaleString()方法獲取的是LocaleString(本地環境字符串)。

  • 如果你開發的腳本在世界范圍都有人使用,那么將對象轉換成字符串時請使用toString()方法來完成。

  • LocaleString()會根據你機器的本地環境來返回字符串,它和toString()返回的值在不同的本地環境下使用的符號會有微妙的變化。

  • 所以使用toString()是保險的,返回唯一值的方法,它不會因為本地環境的改變而發生變化。如果是為了返回時間類型的數據,推薦使用LocaleString()。若是在后台處理字符串,請務必使用toString()。

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM