Heim >Web-Frontend >js-Tutorial >Die JavaScript-Methode toString() konvertiert ein Date-Objekt in einen String und gibt das Ergebnis zurück
Definition und Verwendung
toString()-Methode kann ein Date-Objekt in einen String konvertieren und das Ergebnis zurückgeben.
Syntax
dateObject.toString()
Rückgabewert
Die Zeichenfolgendarstellung von dateObject unter Verwendung der lokalen Zeitdarstellung.
Beispiel
In diesem Beispiel konvertieren wir das heutige Datum in eine Zeichenfolge:
<script type="text/javascript"> var d = new Date() document.write (d.toString()) </script>
Ausgabe:
Wed Nov 08 2017 11:20:25 GMT+0800 (中国标准时间)
So verwenden Sie toString( ), um das heutige Datum in eine Zeichenfolge umzuwandeln.
<script type="text/javascript"> var d = new Date() document.write (d.toString()) </script>
Ergebnis:
Wed Nov 08 2017 11:21:32 GMT+0800 (中国标准时间)
JavaScripts toString()-Methode
toString()-Methode kann einen logischen Wert in einen String umwandeln und das Ergebnis zurückgeben.
Verwendung booleanObject.toString(), der Rückgabewert ist die Zeichenfolge „true“ oder „false“, basierend auf dem ursprünglichen booleschen Wert oder dem Wert des booleanObject-Objekts. Wenn das Objekt, für das diese Methode aufgerufen wird, kein boolescher Wert ist, wird eine Ausnahme TypeError ausgelöst.
Diese Methode wird automatisch aufgerufen, wenn ein boolesches Objekt in einem String-Kontext verwendet wird.
Das folgende Skript erstellt ein boolesches Objekt und konvertiert es in einen String:
<script type="text/javascript"> var boo = new Boolean(true); document.write(boo.toString()); </script>
Skriptausgabe:
true。
Sehen wir uns zunächst ein Beispiel an:
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
Der Grund für dieses Ergebnis ist, dass sie heimlich die Methode valueOf oder toString aufrufen. Aber wie kann man unterscheiden, welche Methode unter welchen Umständen aufgerufen wird? Wir können sie mit einer anderen Methode testen. Da console.log verwendet wird, experimentieren Sie bitte in FF mit installiertem Firebug!
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
Auf den ersten Blick scheint es, dass die toString-Methode beim Konvertieren in einen String und die valueOf-Methode beim Konvertieren in einen numerischen Wert aufgerufen wird. Allerdings sind zwei davon sehr unvereinbar. Eine davon ist Alert(''+bbb), und die Zeichenfolgenverkettung sollte die toString-Methode aufrufen ... Die andere, die wir vorübergehend verstehen können, ist, dass der ===Operator keine implizite Konvertierung durchführt, also sind sie es nicht angerufen. Um die Wahrheit herauszufinden, brauchen wir strengere Experimente.
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 valueOf
Wenn nur toString neu geschrieben wird, wird das Objekt unabhängig von der Existenz von valueOf konvertiert. Wenn jedoch nur die valueOf-Methode überschrieben wird, erhält die valueOf-Methode bei der Konvertierung in einen String Vorrang. Wenn toString nicht aufgerufen werden kann, kann nur valueOf verwendet werden. Bezüglich des seltsamen String-Splicing-Problems liegt es möglicherweise am Operator, den ich ECMA262-5 geöffnet und festgestellt habe, dass es eine getValue-Operation gibt. Dann sollte das Rätsel gelöst sein. Durch das Umschreiben wird die Optimierung ihrer Aufrufe erhöht, und im Fall von Operatoren ist die -Priorität von valueOf von Natur aus höher als die von toString.
Das obige ist der detaillierte Inhalt vonDie JavaScript-Methode toString() konvertiert ein Date-Objekt in einen String und gibt das Ergebnis zurück. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!