Ikke vær mystified av det faktum at streng, tall og boolske bokstaver kan behandles som et objekt med egenskaper (f.eks.., true.toString ()
). Når disse primitive verdiene blir behandlet som objekter ved å forsøke å få tilgang til egenskapene, vil JavaScript opprette et wrapperobjekt fra primitivens tilhørende konstruktør, slik at egenskapene og metodene til wrapper-objektet kan nås.
Når egenskapene er tilgjengelig, blir wrapper-objektet kassert. Denne konverteringen tillater oss å skrive kode som ville få det til å virke som om en primitiv verdi faktisk var et objekt. Sannheten blir fortalt, når den blir behandlet som et objekt i kode, vil JavaScript konvertere det til et objekt slik at tilgangen til eiendom vil fungere, og deretter konvertere den tilbake til en primitiv verdi når en verdi er returnert. Nøkkelen til å merke seg her er hva som skjer, og at JavaScript gjør dette for deg bak kulissene.
Her er noen eksempler for å demonstrere hva jeg snakker om:
Stringseksempel: sample56.html
Nummerprøve: sample57.html
Boolsk prøve: sample58.html
Når du får tilgang til en egenskap direkte på et primitivt nummer (ikke lagret i en variabel), må du først vurdere tallet før verdien blir behandlet som et objekt (f.eks.., (1) .toString ();
eller 1 ... toString ();
). Hvorfor to prikker? Den første prikken betraktes som et numerisk desimal, ikke en operatør for tilgang til objektegenskaper.
De bokstavlige / primitive verdiene som representerer en streng, tall eller boolsk er raskere å skrive og er mer konsise i bokstavelig form.
Du bør bruke bokstavelig verdi på grunn av dette. I tillegg, nøyaktigheten av typeof
Operatør avhenger av hvordan du lager verdien (bokstavelig versus konstruktørinnkalling). Hvis du lager en streng, et nummer eller et boolesk objekt, vil typeof
Operatør rapporterer typen som et objekt. Hvis du bruker bokstavene, typeof
operatør returnerer et strengnavn for den faktiske verditypen (f.eks., typeof 'foo' // returnerer streng '
).
Jeg demonstrerer dette faktum i følgende kode.
Eksempel: sample59.html
Hvis programmet ditt er avhengig av typeof
operatør for å identifisere streng, tall eller boolske verdier i form av de primitive typene, bør du unngå string
, Nummer
, og boolean
konstruktører.