217 votes

Effectuer un cast en string en JavaScript

J'ai trouvé trois façons de jeter une variable String en JavaScript.
J'ai cherché pendant ces trois options dans le jQuery, le code source, et ils sont tous en cours d'utilisation.
Je voudrais savoir si il y a des différences entre eux:

value.toString()
String(value)
value + ""

DÉMO

Ils produisent tous le même résultat, mais qui ne l'un d'eux mieux que les autres?
Je dirais que l' + "" a un avantage qu'il permet d'économiser quelques caractères, mais ce n'est pas que grand avantage, et rien d'autre?

257voto

Connell Watkins Points 5302

Ils ne se comportent différemment lors de l' value est null.

  • null.toString() déclenche une erreur - Impossible d'appeler la méthode "toString" de null
  • String(null) renvoie "null"
  • null + "" renvoie aussi - "null"

Des comportements très similaires qui se passe si value est undefined (voir jbabey de réponse).

Autre que cela, il n'y a qu'un infime différence de performances, qui, sauf si vous utilisez dans d'énormes boucles, n'est pas la peine de s'inquiéter au sujet de.

33voto

jbabey Points 20696

Il existe des différences, mais ils ne sont probablement pas des votre question. Par exemple, le prototype de toString n’existe pas sur des variables non définies, mais vous pouvez effectuer un cast non défini à une chaîne en utilisant les deux autres méthodes :

http://jsfiddle.net/f8YwA/

20voto

Sarfraz Points 168484

Ils comportent de la même chose mais `` fournit également un moyen de convertir un nombre binaire, octal, ou chaînes hexadécimales :

Exemple :

9voto

Sammy S. Points 567

Selon ce test JSPerf, elles se distinguent par la vitesse. Mais à moins que vous allez les utiliser dans d’énormes quantités, aucune d'entre elles doit exécuter correctement.

Par souci d’exhaustivité : asawyer déjà mentionné, vous pouvez aussi utiliser le `` méthode.

8voto

jldec Points 21

Si vous êtes OK avec la valeur null, l’indéfini, NaN, 0, et faux tout ce casting à '' puis `` est plus rapide.

Voir http://jsperf.com/cast-to-string/8

Remarque : il existe des différences significatives dans les navigateurs en ce moment.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X