Javascript_javascript スキルにおける valueOf と toString の違いの簡単な分析
はじめに
基本的に、null を除くすべての JS データ型にはこれら 2 つのメソッドがあります。どちらも JavaScript 値の計算と表示の問題を解決し、書き換えることで呼び出しの最適化が向上します。
テスト分析
まず例を見てみましょう:
var aaa = {
i: 10,
valueOf: function() { return this.i 30; },
toString: function() { return this.valueOf() }
}
alert(aaa > 20); // true
alert(aaa) // 40
alert(aaa) // 50
それは、valueOf メソッドまたは toString メソッドを密かに呼び出すためです。
しかし、どのような状況でどのメソッドが呼び出されるのかを、別のメソッドでテストできるのでしょうか?
console.logを使用するので、firebugをインストールしたFFで実験してみてください!
var bbb = {
i: 10,
toString: function() {
console.log('toString');
return this.i;
},
valueOf: function() {
コンソール。 log(' valueOf');
return this.i;
}
}
alert(bbb); // 10 toString
alert(bbb); // 10 valueOf
alert(bbb); / 10 toString
alert(Number(bbb)) // 10 valueOf
alert(bbb == '10') // true valueOf
alert(bbb === '10'); / false
i: 10,
toString: function() {
console.log('toString');
return this.i;
}
}
alert(aa);// 10 toString
alert( aa); // 10 toString
alert('' aa); // 10 toString
alert(String(aa)); )); // 10 toString
alert(aa == '10'); // true toString
もう一度 valueOf を見てください。
valueOf: function() {
console.log('valueOf')
return this.i; }
}
alert(bb);// [オブジェクト オブジェクト]
alert( bb); // 10 valueOf alert('' bb); // 10 valueOf
alert(String(bb)) ; // [object Object]
alert(Number(bb)); // 10 valueOf
alert(bb == '10'); // true valueOf
何かが見つかりました違う? !上記の toString ほど統一されておらず、規則的でもありません。
その[オブジェクト Object] については、Object から継承されていると思います。それを削除して見てみましょう。
console.log('valueOf');
return this.i;
alert(cc); // 10 valueOf
alert('' cc); // 10 valueOf
alert(cc); ); // 10 valueOf
alert(Number(cc)); // 10 valueOf alert(cc == '10'); // true valueOf
概要: valueOfこれは操作に偏っており、toString は表示に偏っています。
1. オブジェクト (alert(a) など) を変換する場合、toString メソッドが最初に呼び出されます。どちらのメソッドもオーバーライドされていない場合は、toString の出力が呼び出されます。オブジェクトは です。
2.文字列型に強制変換する場合はtoStringメソッドが、数値型に強制変換する場合はvalueOfメソッドが最初に呼び出されます。
3. 演算演算子がある場合、valueOf は toString よりも優先されます。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Java の String.valueOf() 関数を使用して基本データ型を文字列に変換する Java 開発で基本データ型を文字列に変換する必要がある場合、一般的な方法は String クラスの valueOf() 関数を使用することです。この関数は、基本データ型のパラメータを受け入れ、対応する文字列表現を返すことができます。この記事では、基本的なデータ型変換に String.valueOf() 関数を使用する方法を検討し、いくつかのコード例を提供します。

Java の Boolean.valueOf() 関数を使用して文字列をブール値に変換する Java プログラミングでは、文字列をブール値に変換する必要がある状況によく遭遇します。 Java では、Boolean.valueOf() 関数を使用して、この要件を達成する便利な方法を提供しています。この関数は、文字列で表されるブール値を対応するブール型に変換できます。 Boolean.valueOf() の使用法を詳しく見てみましょう。文字列が与えられると、

1. コンセプトは、文字列を通じて単一の列挙オブジェクトを取得することであり、3 つの構文形式があります。 2. パラメータ i、Integer オブジェクトの整数。 s、Integer オブジェクトの文字列。文字列 s を解析するときに使用される基数である radix は、使用される基数を指定するために使用されます。 3. 戻り値は、文字列パラメータで表される整数オブジェクト例外です。文字列を解析できない場合は、NumberFormatException 例外がスローされます。 4. インスタンス publicenumSignal{//列挙型を定義します。 GREEN、YELLOW、RED; publicstaticvoidmain(String[ ]args ){Signalgreen=Sig

StringBuffer クラスの toString() メソッドを使用して、StringBuffer を文字列に変換します。Java では、StringBuffer クラスは、変更可能な文字列を処理するために使用されるクラスです。このクラスには、文字列を変更および操作するための便利なメソッドが多数用意されています。 StringBuffer オブジェクトを文字列に変換する必要がある場合、toString() メソッドを使用してこれを実現できます。 StringBuffer クラスの toString() メソッドは、

Java の String.valueOf() 関数を使用して文字配列を文字列に変換する Java プログラミングでは、多くの場合、文字配列を文字列に変換する必要があります。幸いなことに、Java には、この機能を実現する便利なメソッド String.valueOf() が用意されています。この記事では、String.valueOf() 関数を使用して文字配列を文字列に変換する方法を説明し、対応するコード例を示します。 String.valueOf() 関数は

Java の String.valueOf() 関数を使用して、他の型を文字列に変換します。Java 開発では、他のデータ型を文字列に変換する必要がよく発生します。このニーズを満たすために、Java は型変換を実装する String.valueOf() 関数を提供します。この記事では、String.valueOf() 関数を使用して他の型を文字列に変換する方法を説明し、コード例を示します。基本データ型を文字列に変換する まず、基本データ型を文字列に変換する方法を見てみましょう。

tostring 関数の実装をシミュレートする publicstaticStringmyToString(int[]array){Stringstr="[";for(inti=0;i)

1. 説明 関数 1 は文字列に変換できます。 関数 2 は値をさまざまな基数の文字列 (8 進数、10 進数など) に変換できます。 2. 構文 StringtoString() staticStringtoString(inti) 3. パラメータ i - 変換する整数変換されます。 4. 戻り値 toString(): 整数値を表す String オブジェクトを返します。 toString(inti): 指定された int を表す String オブジェクトを返します。 5. 例 importjava.util.Arrays; publicclassArrayPrint{publicstaticvoidmain(Str
