Altro
Controllare se una variabile è una stringa in JavaScript
Come posso determinare se una variabile è una stringa o qualcos'altro in JavaScript?
1539
3
Questo è quello che funziona per me:
Potete usare l'operatore
typeof
:Esempio da [questa pagina web][1]. (L'esempio è stato però leggermente modificato).
Questo non funzionerà come ci si aspetta nel caso di stringhe create con
new String()
, ma questo è usato raramente e si raccomanda di non usarlo. Vedi le altre risposte per come gestirle, se lo desideri.La Google JavaScript Style Guide dice di non usare mai wrapper di oggetti primitivi.
Douglas Crockford raccomanda che i wrapper di oggetti primitivi siano deprecati.
Il modo migliore:
Ognuno di questi è stato costruito dalla sua appropriata funzione di classe, come "new Object()" ecc.
Inoltre, Duck-Typing: "Se ha l'aspetto di un'anatra, cammina come un'anatra e odora come un'anatra - deve essere un Array" Cioè, controlla le sue proprietà.
Spero che questo aiuti.
Modifica; 12/05/2016
Ricorda che puoi sempre usare anche combinazioni di approcci. Ecco un esempio di utilizzo di una mappa in linea di azioni con typeof:
Ecco un esempio più 'mondo reale' di utilizzo di mappe in linea:
Questa funzione userebbe [ custom ] "type-casting" -- piuttosto, "type-/-value-mapping" -- per capire se una variabile effettivamente "esiste". Ora potete dividere quel brutto pelo tra
null
&0
!Molte volte non ti interessa nemmeno il suo tipo. Un altro modo per aggirare la digitazione è combinare gli insiemi Duck-Type:
Sia
Number.prototype
eString.prototype
hanno un metodo.toString()
. Ti sei solo assicurato che l'equivalente stringa del numero sia lo stesso, e poi ti sei assicurato di passarlo nella funzionehttp
comeNumber
. In altre parole, non ci importava nemmeno di quale fosse il suo tipo.Spero che questo ti dia qualcosa in più con cui lavorare :)