Jeg fant tre måter å caste en variabel til String
i JavaScript.
Jeg søkte etter disse tre alternativene i jQuery-kildekoden, og de er alle i bruk.
Jeg vil gjerne vite om det er noen forskjeller mellom dem:
value.toString()
String(value)
value + ""
[DEMO][1]
De produserer alle det samme, men er en av dem bedre enn de andre?
Jeg vil si at + """
har den fordelen at den sparer noen tegn, men det er ikke den store fordelen, noe annet?
De oppfører seg annerledes når value
er null
.
null.toString()
kaster en feil - Kan ikke kalle metode 'toString' av null.String(null)
returnerer - "null".null + """
returnerer også - "null".Det samme skjer hvis value
er undefinert
(se jbabey's svar).
Bortsett fra det er det en ubetydelig ytelsesforskjell, som, med mindre du bruker dem i store løkker, ikke er verdt å bekymre seg for.
Det finnes forskjeller, men de er sannsynligvis ikke relevante for spørsmålet ditt. Prototypen toString finnes for eksempel ikke på udefinerte variabler, men du kan caste udefinert til en streng ved hjelp av de to andre metodene:
var foo;
var myString1 = String(foo); // "undefined" as a string
var myString2 = foo + ''; // "undefined" as a string
var myString3 = foo.toString(); // throws an exception
Ifølge denne JSPerf-testen er de forskjellige i hastighet. Men med mindre du kommer til å bruke dem i store mengder, bør hvilken som helst av dem fungere bra.
For fullstendighetens skyld: Som asawyer allerede har nevnt, kan du også bruke metoden .toString()
.