Maison  >  Article  >  interface Web  >  La méthode JavaScript toString() convertit un objet Date en chaîne et renvoie le résultat

La méthode JavaScript toString() convertit un objet Date en chaîne et renvoie le résultat

黄舟
黄舟original
2017-11-08 11:22:064687parcourir

La méthode

Définition et utilisation

toString() peut convertir un objet Date en une chaîne et renvoyer le résultat.

Syntaxe

dateObject.toString()

Valeur de retour

La représentation sous forme de chaîne de dateObject, en utilisant la représentation de l'heure locale.

Exemple

Dans cet exemple, nous allons convertir la date du jour en chaîne :

<script type="text/javascript">

var d = new Date()
document.write (d.toString())

</script>

Sortie :

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

Comment utiliser toString( ) pour convertir la date du jour en chaîne.




<script type="text/javascript">

var d = new Date()
document.write (d.toString())

</script>


Résultat :

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

La méthode toString() de JavaScript
la méthode toString() peut convertir une valeur logique en chaîne et renvoyer le résultat.
Utilisez booleanObject.toString(), la valeur de retour est la chaîne "true" ou "false" basée sur la valeur booléenne d'origine ou la valeur de l'objet booleanObject. Si l'objet sur lequel cette méthode est appelée n'est pas un Booléen, lève une exception TypeError.
Cette méthode sera automatiquement appelée lorsqu'un objet booléen est utilisé dans un environnement de chaîne.
Le script suivant créera un objet booléen et le convertira en chaîne :

<script type="text/javascript"> 
var boo = new Boolean(true); 
document.write(boo.toString()); 
</script>

Sortie du script :

true。

Regardons d'abord un exemple :

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

La raison pour laquelle ils ont ce résultat est qu'ils appellent secrètement la méthode valueOf ou toString. Mais comment distinguer quelle méthode est appelée dans quelles circonstances ? Nous pouvons la tester via une autre méthode. Puisque console.log est utilisé, veuillez expérimenter dans FF avec Firebug installé !

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

À première vue, il semble que la méthode toString soit appelée lors de la conversion en chaîne, et la méthode valueOf soit appelée lors de la conversion en valeur numérique. Cependant, deux d'entre elles sont très discordantes. L'un est alert(''+bbb), et la concaténation de chaînes devrait appeler la méthode toString... L'autre que nous pouvons temporairement comprendre est que l' ===opérateur n'effectue pas de conversion implicite, donc ils sont pas appelé. Pour découvrir la vérité, nous avons besoin d’expériences plus rigoureuses.

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

Si seulement toString est réécrit, l'objet sera converti quelle que soit l'existence de valueOf. Cependant, si seule la méthode valueOf est substituée, la méthode valueOf aura la priorité lors de la conversion en chaîne. Lorsque toString ne peut pas être appelé, valueOf ne peut être utilisé. Concernant l'étrange problème d'épissage de chaînes, cela peut être dû à l'opérateur. J'ai ouvert ECMA262-5 et j'ai découvert qu'il existe une opération getValue. Eh bien, alors le mystère devrait être résolu. La réécriture augmentera l'optimisation de leurs appels, et dans le cas des opérateurs, la priorité de valueOf est intrinsèquement supérieure à celle de toString.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn