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

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

黄舟
黄舟Original
2017-11-08 11:22:064625Durchsuche

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(&#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

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

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!

Stellungnahme:
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