Controleren of een variabele een string is in JavaScript
Hoe kan ik bepalen of een variabele een string is of iets anders in JavaScript?
1539
3
Hoe kan ik bepalen of een variabele een string is of iets anders in JavaScript?
Dit is wat voor mij werkt:
Je kunt de
typeof
operator gebruiken:Voorbeeld uit deze webpagina. (Voorbeeld is echter iets aangepast).
Dit zal niet werken zoals verwacht in het geval van strings die zijn gemaakt met
new String()
, maar dit wordt zelden gebruikt en wordt aanbevolen tegen[1][2]. Zie de andere antwoorden voor hoe hiermee om te gaan, als je dat wilt.De beste manier:
Elk van deze is geconstrueerd door de juiste klasse-functie, zoals "new Object()" enz.
Ook, Duck-Typing: "Als het eruit ziet als een eend, loopt als een eend, en ruikt als een eend - moet het een Array" zijn; Betekenis, controleer de eigenschappen.
Ik hoop dat dit helpt.
Edit; 12/05/2016
Vergeet niet dat je ook altijd combinaties van benaderingen kunt gebruiken. Hier's een voorbeeld van het gebruik van een inline map van acties met typeof:
Hier's een meer 'echte wereld' voorbeeld van het gebruik van inline-maps:
Deze functie zou [ aangepaste ] "type-casting" gebruiken -- eerder, "type-/-value-mapping" -- om uit te zoeken of een variabele werkelijk "bestaat". Nu kun je dat vervelende haar tussen
null
&0
!Vaak kan je het type niet eens schelen. Een andere manier om typen te omzeilen is het combineren van Duck-Type sets:
Zowel
Nummer.prototype
alsString.prototype
hebben een.toString() methode
. Je hebt er gewoon voor gezorgd dat het string-equivalent van het getal hetzelfde was, en toen heb je ervoor gezorgd dat je het als eenGetal
doorgaf aan dehttp
functie. Met andere woorden, het kon ons niet eens veel schelen wat het type was.Hopelijk geeft dit je meer om mee te werken :)