javascriptにおけるtonttring()とvalueof()の用法と両者の違い

3072 ワード

基本的に、すべてのJSデータタイプはvalueOfとtoStringの二つの方法を持っています.nullは除外します.彼ら2人はjavascript値演算と表示の問題を解決します.
1.使い方は以下の通りです
toString()メソッド:オブジェクトの文字列表示を返します.
オブジェクト
操作
Aray
将 Aray の要素を文字列に変換します.結果の文字列はコンマで区切られ、接続されます.
ボロア
もしBoolean値が trueは「true」に戻ります.そうでない場合は、「false」を返します.
Date
日付のテキスト表示法を返します.
エロエロ
関連エラーメッセージを含む文字列を返します.
Function
下記の形式の文字列を返します. functinnam は呼び出しされます toString メソッド関数の名前:
function functionname( ) { [native code] }
Number
数値のテキスト表示を返します.
String
戻る String オブジェクトの値
デフォルト
は、[object objectname]を返します.  objectname は、オブジェクトの種類の名前です.
valueOf()メソッド:指定されたオブジェクトの元の値を返します.
オブジェクト
戻り値
Aray
配列の要素は、コンマで区切られた文字列に変換されます.その操作と Aray.toString 和 Aray.join方法は同じです.
ボロア
Boolean値
Date
保存時間は1970年1月1日深夜から計算したミリ秒数です. UTC
Function
関数自体
Number
数値
Object
対象自体です.これはデフォルトです.
String
文字列の値
2.両者の共通点と相違点:
共通点:JavaScriptでは、toString()メソッドとvalueOf()メソッドは、出力対象時に自動的に呼び出します.
相違点:両者が共存している場合、数値演算では、優先的にvalueOfが呼び出され、文字列演算では、優先的にtoStringが呼び出されます.
例1は以下の通りです


 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());
例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())
  ****toString vs valueOfの違い:
戻り値の種類の違い:
              1.toStringは必ずすべてを文字列に変換します.
              2.valueOfは対象内部の値を取り出し、タイプ変換を行わない
用途の違い:
              1.valueOfは算数計算と関係演算に専用です.
              2.toStringは出力文字列に専用です.
共通の欠点:nullとundefinedの値が取れない
PS:Java中parse()とvalueOf()、toString()の違い
1.parse()はSimpleDateFomatの中の方法です.あなたが言っているのはパーrseInt()かパーrsefloat()のような方法でしょう.
名前の通り、例えばパーrseInt()はStringタイプをintタイプに変換することです.
如き
String a="123"
 int b=Integer.parseInt(a)
これでbは123になります.
2.ValueOf()メソッドは、例えばInteger.valueOf()は、StringタイプをIntegerタイプに変換する(注意:intタイプではなく、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です.
                       要点          parseInt()String                      intValue()           ValueOf()                                インテグ