Simbolo JavaScript Tipo primitivo | Spiegato

Simbolo JavaScript Tipo primitivo | Spiegato
Viene introdotto un nuovo tipo primitivo Es6 conosciuto come "Simbolo". I simboli sono oggetti integrati utilizzati per aggiungere tasti di proprietà unici per un oggetto JavaScript. Queste chiavi di proprietà uniche non sono in conflitto con le chiavi aggiunte da altri script e sono nascosti dai meccanismi utilizzati per accedere all'oggetto, come "per ... in" ciclo continuo.

Viene creato il tipo di primitivo del simbolo JavaScript e può essere condiviso a livello globale. Inoltre può anche essere usato per definire le proprietà nascoste di un oggetto. Esistono anche alcuni noti simboli Javascript che contengono il comportamento comune di JavaScript.

Questo articolo spiegherà Tipo javascript simbolo tipo primitivo con l'aiuto di esempi adatti. Quindi iniziamo!

Come creare un tipo di primitivo simbolo in javascript

Il globale "Simbolo()"La funzione viene utilizzata per creare un nuovo simbolo JavaScript nel modo seguente:

let regid = symbol ();

Qui, "Regid"È un nuovo tipo di primitivo del simbolo JavaScript.

Puoi anche aggiungere la descrizione del simbolo all'interno della parentesi "()"Della funzione simbolo (). Questa descrizione è considerata utile ai fini del debug e rende anche i simboli più descrittivi:

let regid = symbol ('registrazione ID');
console.log (regid);

L'output del codice dato visualizzerà il tipo primitivo di "Regid"E la sua descrizione:

Esempio: come creare un tipo primitivo di simbolo in javascript

Nell'esempio seguente, creeremo due simboli chiamati "nome" E "età"E passare le loro descrizioni come argomento al"Simbolo()"Funzione globale:

let name = symbol ("nome dipendente"),
age = simbolo ('age');
console.log (nome);
console.registro (età);

L'esecuzione dell'esempio sopra dato mostra il seguente output:

Ora useremo il javascript "tipo di"Operatore per determinare se"nome" E "età"Le variabili vengono create come simbolo o no:

console.log (typeof name);
console.registro (tipo di età);

Come puoi vedere dall'output, il "tipo di"L'operatore è tornato"simbolo"Come il tipo di variabili specificate:

Ricorda che i simboli sono creati solo con l'aiuto di "Simbolo()"Funzione globale. Per lo stesso scopo, usando il "nuovo"L'operatore lancerà un errore poiché i simboli sono valori primitivi:

let regid = new symbol ();

"Regid"Il simbolo non verrà creato e quanto segue"TAYEERROR" sarà mostrato:

La sezione precedente ha fornito il metodo per la creazione di simboli come valori di tipo primitivo. Ora andremo avanti e discuteremo di come puoi condividere i simboli in JavaScript.

Come condividere un tipo di primitivo simbolo in javascript

IL "Registro dei simboli globali"Supportato da ES6 consente di condividere il simbolo creato a livello globale utilizzando il"Simbolo.per()Metodo "invece di usare"Simbolo()" funzione.

Ad esempio, stiamo creando un "Regid"Simbolo con una descrizione usando"Simbolo.per()" metodo:

let regid = simbolo.per ('regid');

Quando il "Simbolo.per()"Metodo eseguono, cerca il"Regid"Chiave nel registro dei simboli globali; se la "Regid"Il simbolo esiste già nel registro, il"Simbolo.per()"Il metodo lo restituirà. In un altro caso, un nuovo "Regid"Il simbolo verrà creato e aggiunto al registro dei simboli globali.

Ora, invocando il "Simbolo.per()"Metodo durante il passaggio"Regid"La chiave come argomento restituirà l'attuale"Regid"Simbolo contenuto nel registro dei simboli globali:

Let StudentId = Symbol.per ('regid');
console.log (regid === StudentID);

L'output mostra "VERO"Per il rigoroso confronto tra"Regid" E "StudentId"Perché entrambi sono gli stessi in termini di tipo e tasti aggiunti:

Per la verifica della chiave associata al "StudentId", Eseguiremo il “Keyfor ()Metodo "e passa il"StudentId"Come argomento:

console.registro (simbolo.keyfor (StudentID));

IL "keyfor ()Il metodo "tornerà"Regid"Come la chiave del simbolo di StudentId:

Se stai cercando un simbolo che non viene aggiunto nel registro dei simboli globali, allora il "keyfor ()Il metodo "tornerà"non definito"Valore per il valore specificato:

let EmployeEID = Symbol ('EmployeeID');
console.registro (simbolo.keyfor (EmployeeID));

Qui, il "ID Dipendente"Il simbolo non esiste nel registro dei simboli globali, perché viene creato usando il"Simbolo()" invece di "Simbolo.per()Metodo ", e quando il"Simbolo.per()"Il metodo lo cerca nel registro dei simboli globali, è tornato"non definito":

Hai visto che la creazione e la condivisione dei valori primitivi del simbolo è piuttosto semplice. La sezione seguente dimostrerà come utilizzare questi simboli nel tuo codice JavaScript.

Come utilizzare i simboli per la creazione di proprietà nascoste di un oggetto in JavaScript

Il valore primitivo del simbolo JavaScript ti consente di creare nascosto Proprietà di un oggetto. A tale scopo, puoi creare un "simbolo"E utilizzalo come chiave di proprietà di un oggetto. La proprietà creata verrà saltata dal per ... in Loop e un altro script non sarebbe in grado di accedervi direttamente perché "simbolo"Non è incluso in altri script. In questo modo, i simboli sono considerati ideali per nascondere le proprietà degli oggetti.

Esempio: come utilizzare i simboli per la creazione di proprietà nascoste di un oggetto in JavaScript

Prima di tutto, creeremo un "Articlestatus"Oggetto che comprende i seguenti tre simboli come proprietà nascoste:

Let ArticLestatus =
In_progress: simbolo ("articolo in corso"),
Completato: simbolo ("articolo completato"),
Finalizzato: simbolo ("articolo finalizzato"),
;

Nel prossimo passaggio, aggiungeremo un altro simbolo chiamato "il mio stato":

let mystatus = symbol ('mystatus');

Ecco che arriva la parte eccitante, nel "compito"Oggetto, aggiungeremo due proprietà, una è"descrizione,"E l'altro è" [il mio stato]". “[il mio stato]"È una proprietà calcolata dell'oggetto attività in quanto deriva da"il mio stato"Simbolo e il suo valore comprendono il"COMPLETATO"Proprietà nascosta del"Articlestatus"Oggetto:

let task =
[Mystatus]: Articlestatus.COMPLETATO,
Descrizione: "Tipo primitivo del simbolo JavaScript"
;
console.registro (attività);

Produzione

L'output di cui sopra indica che i simboli funzionano perfettamente per la creazione di proprietà nascoste a cui è possibile accedere solo con i loro oggetti associati.

Simboli ben noti in Javascript

ES6 supporta molti simboli predefiniti che contengono il comportamento comune di JavaScript, noto come "ben noto"Simboli. Questi simboli ben noti rappresentano la proprietà statica del "Simbolo"Oggetto.

Dai un'occhiata ai simboli più utili di JavaScript.

Simbolo.Hasinstance in JavaScript

Simbolo.hasinstance è un simbolo che viene utilizzato per determinare se l'oggetto costruttore identifica l'oggetto specificato come istanza o no.

Sintassi del simbolo.Hasinstance in JavaScript

[Simbolo.hasinstance] (oggetto)

Qui, il "Simbolo.hasinstanceIl simbolo "accetta un"oggetto"Come argomento.

Esempio: simbolo.Hasinstance in JavaScript

In genere, quando un operatore di istanza viene utilizzato come "istanza dell'oggetto del tipo“, JavaScript invoca il"Simbolo.hasinstance"Simbolo. Quindi, verifica se il "oggetto"È un'istanza dell'altro specificato"tipo"Oggetto o no.

Nell'esempio seguente, l'array "["Non è un'istanza di"Libro"Classe, quindi il"istanza di"L'operatore tornerà"falso"Come output:

libro di classe

console.log ([] istanza del libro);

Produzione

Puoi aggiungere il "Simbolo.hasinstance"Simbolo per definire l'array"["Come istanza di"Libro" Classe:

libro di classe
statico [simbolo.hasinstance] (obj)
Array di ritorno.isArray (OBJ);


console.log ([] istanza del libro);

Produzione

Quindi il "istanza di"L'operatore è tornato"VERO"Dopo aver eseguito il controllo specificato sull'array"[".

Simbolo.iSConcatsPredble in JavaScript

IL Simbolo.non si prefigge Il simbolo restituisce un valore booleano che determina se un oggetto specificato viene aggiunto individualmente al risultato di "concat ()"Funzione o no.

Sintassi del simbolo.iSConcatsPredble in JavaScript

[Simbolo.iSConcatsPredable]: valore

Qui, "valore"Viene utilizzato per impostare il"booleano" valore di Simbolo.non si prefigge simbolo, dove "VERO"Permette al simbolo di aggiungere individualmente gli elementi dell'oggetto e"falso"Concatenerà l'oggetto specificato nel suo insieme.

Esempio: simbolo.iSConcatsPredble in JavaScript

In primo luogo, creeremo un "obj1"JavaScript, che ha le seguenti proprietà:

let obj1 =
0: 'JS',
1: 'simbolo tipo primitivo',
Lunghezza: 2
;

Nel prossimo passaggio, concateremo "obj1" con ['Insegnamento'] array usando il “concat ()" funzione:

let info = ['insegnamento'].concat (obj1);
console.log (info);

La funzione Concat () non diffonderà i singoli elementi di "obj1"Mentre lo concatenano con ['Insegnamento'] vettore:

Se vuoi aggiungere individualmente gli elementi di "obj1"All'array, devi aggiungere il Simbolo.non si prefigge Simbolo come proprietà a “obj1"E impostare il suo valore su"VERO":

let obj1 =
0: 'JS',
1: 'simbolo tipo primitivo',
Lunghezza: 2,
[Simbolo.iSConcatsPreable]: vero
;
let info = ['insegnamento'].concat (obj1);
console.log (info);

Dai un'occhiata all'output di seguito donati; IL "obj1"Gli elementi vengono aggiunti individualmente nel risultato"informazioni" vettore:

Abbiamo compilato tutte le informazioni essenziali relative al tipo primitivo di JavaScript Symbol.

Conclusione

Usando il Simbolo() funzione globale, è possibile creare un tipo primitivo di simbolo JavaScript che contiene un valore unico, mentre il Simbolo.per() Il metodo consente di creare un simbolo che può essere condiviso a livello globale. Il tipo di primitivo del simbolo JavaScript viene utilizzato principalmente per definire le proprietà nascoste di un oggetto. Questo articolo ha spiegato Tipo javascript simbolo tipo primitivo con l'aiuto di esempi adatti.