He encontrado tres formas de convertir una variable en String
en JavaScript.
Busqué esas tres opciones en el código fuente de jQuery, y están todas en uso.
Me gustaría saber si hay alguna diferencia entre ellas:
value.toString()
String(value)
value + ""
[DEMO][1]
Todos producen la misma salida, pero ¿uno de ellos es mejor que los otros?
Yo diría que el `+ ""tiene una ventaja que ahorra algunos caracteres, pero eso' no es que gran ventaja, algo más?
Se comportan de forma diferente cuando el "valor" es "nulo".
null.toString()
arroja un error - No se puede llamar al método 'toString' de nullString(null)
devuelve - "null"null + ""
también devuelve - "null"Un comportamiento muy similar ocurre si value
es undefined
(ver jbabey's answer).
Aparte de eso, hay una diferencia de rendimiento insignificante, que, a menos que los utilice en bucles enormes, no merece la pena preocuparse.
Hay diferencias, pero probablemente no sean relevantes para tu pregunta. Por ejemplo, el prototipo toString no existe en las variables indefinidas, pero puedes convertir lo indefinido en una cadena utilizando los otros dos métodos:
var foo;
var myString1 = String(foo); // "undefined" as a string
var myString2 = foo + ''; // "undefined" as a string
var myString3 = foo.toString(); // throws an exception
Según esta prueba de JSPerf, difieren en velocidad. Pero a menos que vayas a utilizarlos en grandes cantidades, cualquiera de ellos debería funcionar bien.
Para completar: Como ya mencionó asawyer, también puedes usar el método .toString()
.