Encontrei três maneiras de lançar uma variável para 'String' em JavaScript.
Procurei essas três opções no código fonte jQuery, e **todos eles estão em uso***.
Gostaria de saber se existem quaisquer diferenças entre eles:
value.toString()
String(value)
value + ""
[DEMO][1]
Todos produzem a mesma produção, mas será que um deles é melhor que os outros?
Eu diria que o + ""
tem a vantagem de salvar alguns caracteres, mas isso'não é essa grande vantagem, qualquer outra coisa?
Comportam-se de forma diferente quando o "valor" é "nulo".
null + ""
também retorna - "null"Um comportamento muito semelhante acontece se o "valor" for "definido" (ver jbabey's answer).
Fora isso, há uma diferença de desempenho insignificante, que, a menos que você'esteja a utilizá-los em enormes laços, é'não vale a pena preocupar-se com isso.
Há diferenças, mas provavelmente não são relevantes para a sua pergunta. Por exemplo, o protótipo toString não existe sobre variáveis indefinidas, mas pode lançar indefinido a uma cadeia usando os outros dois 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
De acordo com este teste JSPerf, eles diferem em velocidade. Mas, a não ser que'os vá utilizar em grandes quantidades, qualquer um deles deve ter um bom desempenho.
Para a completude: Como asawyer já mencionado, também se pode utilizar o método .toString()
.