ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript メソッド toString() は、Date オブジェクトを文字列に変換し、結果を返します。
定義と使用法
toString() メソッドは、Date オブジェクトを string に変換し、結果を返すことができます。
構文
dateObject.toString()
戻り値
現地時間で表現された dateObject の文字列表現。
例
この例では、今日の日付を文字列に変換します:
<script type="text/javascript"> var d = new Date() document.write (d.toString()) </script>
出力:
Wed Nov 08 2017 11:20:25 GMT+0800 (中国标准时间)
toString() を使用して今日の日付を文字列に変換する方法。
<script type="text/javascript"> var d = new Date() document.write (d.toString()) </script>
Result:
Wed Nov 08 2017 11:21:32 GMT+0800 (中国标准时间)
JavaScriptのtoString()メソッド
toString()メソッドは、論理値を文字列に変換して結果を返すことができます。
booleanObject.toString() を使用すると、戻り値は元のブール値または booleanObject オブジェクトの値に基づいて文字列「true」または「false」を返します。このメソッドが呼び出されるオブジェクトがブール値でない場合、例外 TypeError がスローされます。 このメソッドは、Boolean オブジェクトが文字列環境で使用されるときに自動的に呼び出されます。
次のスクリプトはブール オブジェクトを作成し、それを文字列に変換します:
<script type="text/javascript"> var boo = new Boolean(true); document.write(boo.toString()); </script>スクリプト出力:
true。まず例を見てみましょう:
var aaa = { i: 10, valueOf: function() { return this.i+30; }, toString: function() { return this.valueOf()+10; } } 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() { console.log('valueOf'); return this.i; } } alert(bbb);// 10 toString alert(+bbb); // 10 valueOf alert(''+bbb); // 10 valueOf alert(String(bbb)); // 10 toString alert(Number(bbb)); // 10 valueOf alert(bbb == '10'); // true valueOf alert(bbb === '10'); // false一見、文字列に変換する場合は toString メソッドが呼び出され、数値に変換される場合は valueOf メソッドが呼び出される結果のように見えますが、そのうち 2 つは非常に不一致です。 1 つは、alert(''+bbb) で、文字列の連結では toString メソッドを呼び出す必要があります。もう 1 つは、===
operator が暗黙的な変換を実行しないため、呼び出されないと一時的に理解できます。真実を解明するには、より厳密な実験が必要です。
var aa = { 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(Number(aa)); // 10 toString alert(aa == '10'); // true toString 再看valueOf。 var bb = { i: 10, valueOf: function() { console.log('valueOf'); return this.i; } } alert(bb);// [object Object] 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],我估计是从Object那里继承过来的,我们再去掉它看看。 Object.prototype.toString = null; var cc = { i: 10, valueOf: function() { console.log('valueOf'); return this.i; } } alert(cc);// 10 valueOf alert(+cc); // 10 valueOf alert(''+cc); // 10 valueOf alert(String(cc)); // 10 valueOf alert(Number(cc)); // 10 valueOf alert(cc == '10'); // true valueOftoStringを書き換えるだけであれば、valueOfの有無に関係なくオブジェクトが変換されます。ただし、valueOf メソッドのみがオーバーライドされた場合は、文字列に変換するときに valueOf メソッドが優先されます。 toString を呼び出せない場合は、valueOf のみを使用できます。奇妙な文字列のスプライシングの問題については、ECMA262-5 を開いたところ、getValue オペレーションがあることがわかりました。さて、謎は解けるはずだ。書き換えると呼び出しの最適化が強化され、演算子の場合、valueOf の
優先度 は本質的に toString の優先度よりも高くなります。
以上がJavaScript メソッド toString() は、Date オブジェクトを文字列に変換し、結果を返します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。