Vairāk
Pārbaudiet, vai mainīgais ir virkne JavaScript
Kā JavaScript var noteikt, vai mainīgais ir virkne vai kas cits?
1539
3
Kā JavaScript var noteikt, vai mainīgais ir virkne vai kas cits?
Tas ir tas, kas man darbojas:
Varat izmantot operatoru
typeof
:Piemērs no šī lapa. (Piemērs ir nedaudz pārveidots).
Tas nedarbosies, kā gaidīts, ja virknes tiks izveidotas ar
new String()
, bet tas tiek reti izmantots un to ieteicams novērst[1][2]. Ja vēlaties, skatiet citas atbildes par to, kā ar tām rīkoties.Labākais veids:
Katrs no šiem objektiem ir konstruēts ar atbilstošas klases funkciju, piemēram, "new Object()" utt.
Arī Duck-Typing: Ja tas izskatās kā pīle, staigā kā pīle un smaržo kā pīle - tam jābūt masīvam" Tas nozīmē, ka pārbaudiet tā īpašības.
Ceru, ka tas palīdzēs.
Edit; 12/05/2016
Atcerieties, ka vienmēr varat izmantot arī pieejas kombinācijas. Lūk, piemērs, kā izmantot darbību inline map ar typeof:
Lūk'reālāks 'reālās pasaules' inline-mapas izmantošanas piemērs:
Šī funkcija izmantotu [ custom ] "type-casting" -- drīzāk "type-/-value-mapping" -- lai noskaidrotu, vai mainīgais patiešām "pastāv". Tagad jūs varat sadalīt šo nepatīkamo matu starp
null
& amp;0
!Daudzos gadījumos jums pat nav svarīgs tā tips. Vēl viens veids, kā apiet tipizēšanu, ir kombinēt Duck-Type kopas:
Gan
Number.prototipam
, ganString.prototipam
ir.toString() metode
. Jūs vienkārši pārliecinājāties, ka skaitļa virknes ekvivalents ir vienāds, un pēc tam pārliecinājāties, ka esat to nodevishttp
funkcijai kāNumer
. Citiem vārdiem sakot, mums pat nebija svarīgi, kāds ir tā tips.Ceru, ka tas dos jums vairāk darba :)