Heim > Web-Frontend > js-Tutorial > Hauptteil

Die JavaScript-Methode toString() konvertiert ein Date-Objekt in einen String und gibt das Ergebnis zurück

黄舟
Freigeben: 2017-11-08 11:22:06
Original
4625 Leute haben es durchsucht

Definition und Verwendung

toString()-Methode kann ein Date-Objekt in einen String konvertieren und das Ergebnis zurückgeben.

Syntax

dateObject.toString()
Nach dem Login kopieren

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>
Nach dem Login kopieren

Ausgabe:

Wed Nov 08 2017 11:20:25 GMT+0800 (中国标准时间)
Nach dem Login kopieren

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>


Nach dem Login kopieren

Ergebnis:

Wed Nov 08 2017 11:21:32 GMT+0800 (中国标准时间)
Nach dem Login kopieren

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>
Nach dem Login kopieren

Skriptausgabe:

true。
Nach dem Login kopieren

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
Nach dem Login kopieren

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(&#39;toString&#39;); 
return this.i; 
}, 
valueOf: function() { 
console.log(&#39;valueOf&#39;); 
return this.i; 
} 
} 
alert(bbb);// 10 toString 
alert(+bbb); // 10 valueOf 
alert(&#39;&#39;+bbb); // 10 valueOf 
alert(String(bbb)); // 10 toString 
alert(Number(bbb)); // 10 valueOf 
alert(bbb == &#39;10&#39;); // true valueOf 
alert(bbb === &#39;10&#39;); // false
Nach dem Login kopieren

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(&#39;toString&#39;); 
return this.i; 
} 
} 
alert(aa);// 10 toString 
alert(+aa); // 10 toString 
alert(&#39;&#39;+aa); // 10 toString 
alert(String(aa)); // 10 toString 
alert(Number(aa)); // 10 toString 
alert(aa == &#39;10&#39;); // true toString 
再看valueOf。 
var bb = { 
i: 10, 
valueOf: function() { 
console.log(&#39;valueOf&#39;); 
return this.i; 
} 
} 
alert(bb);// [object Object] 
alert(+bb); // 10 valueOf 
alert(&#39;&#39;+bb); // 10 valueOf 
alert(String(bb)); // [object Object] 
alert(Number(bb)); // 10 valueOf 
alert(bb == &#39;10&#39;); // true valueOf 
发现有点不同吧?!它没有像上面toString那样统一规整。对于那个[object Object],我估计是从Object那里继承过来的,我们再去掉它看看。 
Object.prototype.toString = null; 
var cc = { 
i: 10, 
valueOf: function() { 
console.log(&#39;valueOf&#39;); 
return this.i; 
} 
} 
alert(cc);// 10 valueOf 
alert(+cc); // 10 valueOf 
alert(&#39;&#39;+cc); // 10 valueOf 
alert(String(cc)); // 10 valueOf 
alert(Number(cc)); // 10 valueOf 
alert(cc == &#39;10&#39;); // true valueOf
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!