JavaScript -symbolet primitiv type er opprettet og kan deles globalt. Videre kan det også brukes til å definere de skjulte egenskapene til et objekt. Det eksisterer også noen kjente JavaScript-symboler som inneholder den vanlige oppførselen til JavaScript.
Denne oppskrivningen vil forklare JavaScript -symbol primitiv type ved hjelp av passende eksempler. Så la oss starte!
Hvordan lage et symbol primitiv type i javascript
Det globale “Symbol ()”Funksjon brukes til å lage et nytt JavaScript -symbol på følgende måte:
La regid = symbol ();Her, “regid”Er et nytt JavaScript -symbol primitiv type.
Du kan også legge til symbolbeskrivelsen i parentesen "()”Av symbolet () -funksjonen. Denne beskrivelsen anses som nyttig for feilsøkingsformål, og den gjør også symboler mer beskrivende:
La regid = symbol ('registrerings -ID');Utgangen fra den gitte koden vil vise den primitive typen "regid”Og beskrivelsen:
Eksempel: Hvordan lage et symbol primitiv type i JavaScript
I eksemplet nedenfor vil vi lage to symboler som heter “Navn”Og“alder”Og gi beskrivelsene deres som et argument til“Symbol ()”Global funksjon:
La navn = symbol ('ansattes navn'),Utførelse av det ovennevnte eksemplet viser følgende utgang:
Nå vil vi bruke JavaScript “typeof”Operatør for å avgjøre om“Navn”Og“alder”Variabler opprettes som et symbol eller ikke:
konsoll.logg (type av navn);Som du kan se av utgangen, "typeof”Operatøren kom tilbake”symbol”Som typen av de spesifiserte variablene:
Husk at symboler bare opprettes ved hjelp av "Symbol ()”Global funksjon. For samme formål, ved å bruke “ny”Operatøren vil kaste en feil da symboler er primitive verdier:
La regid = nytt symbol ();“regid”Symbol vil ikke bli opprettet, og følgende“Typeerror”Vil bli vist:
Den forrige delen ga metoden for å lage symboler som primitive typeverdier. Nå vil vi gå videre og diskutere hvordan du kan dele symboler i JavaScript.
Hvordan dele et symbol primitiv type i JavaScript
“Globalt symbolregister”Støttet av ES6 tillater deg å dele det opprettede symbolet globalt ved å bruke“Symbol.til()”Metode i stedet for å bruke“Symbol ()”Funksjon.
For eksempel lager vi en "regid”Symbol med en beskrivelse som bruker“Symbol.til()”Metode:
La regid = symbol.for ('regid');Når “Symbol.til()”Metode utføres, den søker etter“regid”Nøkkel i det globale symbolregisteret; Hvis “regid”Symbol eksisterer allerede i registeret,“Symbol.til()”Metoden vil returnere den. I et annet tilfelle en ny "regid”Symbol vil bli opprettet og lagt til det globale symbolregisteret.
Nå, påkalle "Symbol.til()”Metode mens du passerer”regid”Nøkkel som argument vil returnere det eksisterende”regid”Symbol inneholdt i det globale symbolregisteret:
La StudentId = symbol.for ('regid');Utgangen viser “ekte”For den strenge sammenligningen mellom“regid”Og“Student ID”Fordi begge er de samme når det gjelder type og lagt til nøkler:
For verifisering av nøkkelen knyttet til “Student ID”, Vi vil utføre “Keyfor ()”Metode og passere“Student ID”Som et argument:
konsoll.Logg (symbol.Keyfor (StudentID));“Keyfor ()”Metoden kommer tilbake“regid”Som StudentId -symbolets nøkkel:
Hvis du søker etter et symbol som ikke er lagt til i det globale symbolregisteret, så "Keyfor ()”Metoden kommer tilbake“udefinert”Verdi for den spesifiserte verdien:
La ansattesId = symbol ('ansatt');Her, "Ansatt ID”Symbol eksisterer ikke i det globale symbolregisteret, fordi det opprettes ved hjelp av“Symbol ()" i stedet for "Symbol.til()”Metode, og når“Symbol.til()”Metoden ser etter den i det globale symbolregisteret, den returnerte”udefinert”:
Du har sett at det er ganske greit å lage og dele symbol. Følgende avsnitt vil demonstrere hvordan du kan bruke disse symbolene i JavaScript -koden.
Hvordan bruke symboler for å lage skjulte egenskaper til et objekt i JavaScript
Javascript -symbolet primitive verdi tillater deg å lage skjult Egenskaper til et objekt. For dette formålet kan du opprette en "symbol”Og bruk den som objektets eiendomsnøkkel. Den opprettede eiendommen vil bli hoppet over av for i loop, og et annet manus ville ikke kunne få tilgang til det direkte fordi "symbol”Er ikke inkludert i andre skript. På denne måten anses symboler som ideelle for å skjule objektegenskaper.
Eksempel: Hvordan bruke symboler for å lage skjulte egenskaper til et objekt i JavaScript
Først av alt vil vi lage en "Articlestatus”Objekt som omfatter følgende tre symboler som dets skjulte egenskaper:
La articLestatus =I neste trinn vil vi legge til et annet symbol som heter “min status”:
La myStatus = symbol ('mystatus');Her kommer den spennende delen, i “oppgave”Objekt, vi vil legge til to egenskaper, en er“beskrivelse,”Og den andre er“ [min status]”. “[min status]”Er en beregnet egenskap til oppgaveobjektet da det er avledet fra“min status”Symbol og dens verdi omfatter“Fullført”Skjult eiendom til“Articlestatus”Objekt:
La oppgaven =Produksjon
Den ovennevnte utgangen betyr at symboler fungerer perfekt for å lage skjulte egenskaper som bare kan nås med tilhørende objekter.
Kjente symboler i JavaScript
ES6 støtter mange forhåndsdefinerte symboler som inneholder JavaScripts vanlige oppførsel, kjent som “Velkjente”Symboler. Disse kjente symbolene representerer den statiske egenskapen til “Symbol”Objekt.
La oss sjekke ut de mest nyttige kjente symbolene på JavaScript.
Symbol.Hasinstance i JavaScript
Symbol.hasinstance er et symbol som brukes til å bestemme om konstruktørobjektet identifiserer det spesifiserte objektet som dets forekomst eller ikke.
Syntaks av symbolet.Hasinstance i JavaScript
[Symbol.hasinstance] (objekt)Her, "Symbol.hasinstance”Symbol aksepterer et“gjenstand”Som et argument.
Eksempel: symbol.Hasinstance i JavaScript
Vanligvis, når en forekomst brukes som "Objektforekomst av type“, JavaScript påkaller“Symbol.hasinstance”Symbol. Deretter bekrefter det om "gjenstand”Er en forekomst av den andre spesifiserte”type”Objekt eller ikke.
I det følgende eksemplet er matrisen “[]”Er ikke et eksempel på“Bok”Klasse, så“tilfelle av”Operatøren vil returnere“falsk”Som utgang:
klassebokProduksjon
Du kan legge til “Symbol.hasinstance”Symbol for å definere matrise”[]”Som et eksempel på“Bok”Klasse:
klassebokProduksjon
Derav "tilfelle av”Operatøren kom tilbake”ekte”Etter å ha utført den spesifiserte sjekken på matrisen“[]”.
Symbol.ISConcatSspreadable i JavaScript
De Symbol.ISConcatSspreadable Symbolet returnerer en boolsk verdi som avgjør om et spesifisert objekt individuelt blir lagt til resultatet av "concat ()”Funksjon eller ikke.
Syntaks av symbolet.ISConcatSspreadable i JavaScript
[Symbol.IsConcatSspreadable]: VerdiHer, “verdi”Brukes til å stille inn“boolsk" verdien av Symbol.ISConcatSspreadable symbol, hvor “ekte”Tillater symbolet å legge til objektelementene individuelt og“falsk”Vil sammenkoble det spesifiserte objektet som helhet.
Eksempel: symbol.ISConcatSspreadable i JavaScript
For det første vil vi lage en "obj1”JavaScript, som har følgende egenskaper:
La obj1 =I neste trinn vil vi sammenkoble “obj1”Med ['Undervisning'] matrise ved hjelp av “concat ()”Funksjon:
La info = ['undervisning'].concat (obj1);Concat () -funksjonen vil ikke spre de individuelle elementene i “obj1”Mens sammen med det med ['Undervisning'] Array:
Hvis du vil legge til elementene i "obj1”Til matrisen må du legge til Symbol.ISConcatSspreadable Symbol som en eiendom til “obj1”Og setter verdien til“ekte”:
La obj1 =Sjekk ut den undergitte utgangen; “obj1”Elementer legges til individuelt i det resulterende”info”Array:
Vi har samlet all den essensielle informasjonen relatert til JavaScript -symbolet Primitive Type.
Konklusjon
Bruker Symbol () Global funksjon, kan du opprette en JavaScript -symbolprimitiv type som inneholder en unik verdi, mens Symbol.til() Metode lar deg lage et symbol som kan deles globalt. JavaScript -symbol Primitiv type brukes mest til å definere et objekts skjulte egenskaper. Denne oppskrivningen forklarte JavaScript -symbol primitiv type ved hjelp av passende eksempler.