J'ai trouvé trois façons de transformer une variable en "String" en JavaScript.
J'ai cherché ces trois options dans le code source de jQuery, et elles sont toutes utilisées.
J'aimerais savoir s'il existe des différences entre elles :
value.toString()
String(value)
value + ""
[DEMO][1]
Ils produisent tous le même résultat, mais l'un d'entre eux est-il meilleur que les autres ?
Je dirais que le + ""
a l’avantage d’économiser quelques caractères, mais ce n’est pas un gros avantage, autre chose ?
[1] :
Ils se comportent différemment lorsque la "valeur" est "nulle".
null.toString()
jette une erreur - Impossible d'appeler la méthode 'toString' ; de null.String(null)
renvoie - "null".null + ""
renvoie également - "null".Un comportement très similaire se produit si value
est undefined
(voir la réponse de jbabey).
En dehors de cela, il y a une différence de performance négligeable, qui, à moins que vous ne les utilisiez dans d'énormes boucles, ne vaut pas la peine de s'en inquiéter.
Il existe des différences, mais elles ne sont probablement pas pertinentes pour votre question. Par exemple, le prototype toString n'existe pas pour les variables indéfinies, mais vous pouvez convertir une variable indéfinie en une chaîne de caractères à l'aide des deux autres méthodes :
var foo;
var myString1 = String(foo); // "undefined" as a string
var myString2 = foo + ''; // "undefined" as a string
var myString3 = foo.toString(); // throws an exception
D'après [ce test JSPerf] (http://jsperf.com/cast-to-string/2), ils diffèrent en termes de vitesse. Mais à moins que vous ne les utilisiez en grande quantité, n'importe lequel d'entre eux devrait fonctionner correctement.
Pour être complet : Comme asawyer l'a déjà mentionné, vous pouvez également utiliser la méthode .toString()
.