Type primitif du symbole JavaScript | Expliqué

Type primitif du symbole JavaScript | Expliqué
Un nouveau type primitif est introduit dans ES6 connu comme "Symbole". Les symboles sont des objets intégrés utilisés pour ajouter des touches de propriété uniques pour un objet JavaScript. Ces clés de propriété uniques ne seront pas en conflit avec les clés ajoutées par d'autres scripts et sont cachées aux mécanismes utilisés pour accéder à l'objet, comme «pour… dans" boucle.

Le type primitif du symbole JavaScript est créé et peut être partagé à l'échelle mondiale. De plus, il peut également être utilisé pour définir les propriétés cachées d'un objet. Il existe également des symboles JavaScript bien connus qui contiennent le comportement commun de JavaScript.

Cet article expliquera Type primitif du symbole javascript avec l'aide d'exemples appropriés. Alors, commençons!

Comment créer un type primitif symbole en javascript

Le Global "Symbole()«La fonction est utilisée pour créer un nouveau symbole JavaScript de la manière suivante:

Soit Regid = symbol ();

Ici, "régder«Est un nouveau type primitif symbole javascript.

Vous pouvez également ajouter la description du symbole dans la parenthèse "()”De la fonction symbole (). Cette description est considérée comme utile à des fins de débogage et rend également les symboles plus descriptifs:

Selt Regid = Symbol ('ID d'enregistrement');
console.journal (régide);

La sortie du code donné affichera le type primitif de "régder»Et sa description:

Exemple: comment créer un type primitif symbole en javascript

Dans l'exemple ci-dessous, nous créerons deux symboles nommés «nom" et "âge»Et transmettent leurs descriptions comme argument au«Symbole()»Fonction globale:

LET NAME = SYMBOL («Nom de l'employé»),
Âge = symbole («âge»);
console.log (nom);
console.journal (âge);

L'exécution de l'exemple donné ci-dessus montre la sortie suivante:

Maintenant, nous allons utiliser le javascript "Type de«Opérateur pour déterminer si«nom" et "âge»Les variables sont créées ou non comme un symbole:

console.journal (nom de type);
console.journal (type d'âge);

Comme vous pouvez le voir sur la sortie, le «Type de"L'opérateur est revenu"symbole«Comme type des variables spécifiées:

N'oubliez pas que les symboles ne sont créés qu'avec l'aide du «Symbole()»Fonction globale. Dans le même but, en utilisant le «nouveau»L'opérateur lancera une erreur car les symboles sont des valeurs primitives:

Soit Regid = new Symbol ();

"régder"Le symbole ne sera pas créé, et le suivant"Erreur-type"Sera montré:

La section précédente a fourni la méthode pour créer des symboles comme valeurs de type primitif. Maintenant, nous allons avancer et discuter de la façon dont vous pouvez partager les symboles en javascript.

Comment partager un type primitif symbole en javascript

Le "Registre mondial des symboles”Soutenir par l'ES6 vous permet de partager le symbole créé à l'échelle mondiale en utilisant le«Symbole.pour()«Méthode au lieu d'utiliser le«Symbole()" fonction.

Par exemple, nous créons un «régder"Symbole avec une description utilisant"Symbole.pour()" méthode:

Soit Regid = symbole.pour («Regid»);

Quand le "Symbole.pour()»La méthode s'exécute, il recherche le«régder»Clé dans le registre mondial des symboles; si la "régder«Le symbole existe déjà dans le registre, le«Symbole.pour()»La méthode le renverra. Dans un autre cas, un nouveau «régder"Le symbole sera créé et ajouté au registre mondial des symboles.

Maintenant, invoquant le «Symbole.pour()"Méthode en passant"régder«La clé comme argument renvoie le«régder»Symbole contenu dans le registre mondial des symboles:

Laissez StudentID = symbole.pour («Regid»);
console.log (régid === StudentID);

La sortie montre "vrai"Pour la comparaison stricte entre"régder" et "Carte d'étudiant«Parce que les deux sont les mêmes en termes de types et de clés ajoutées:

Pour la vérification de la clé associée au «Carte d'étudiant», Nous allons exécuter le «Keyfor ()«Méthode et passez le«Carte d'étudiant«Comme argument:

console.journal (symbole.KeyFor (StudentID));

Le "KeyFor ()"La méthode reviendra"régder«Comme la clé du symbole étudiant:

Si vous recherchez un symbole qui n'est pas ajouté dans le registre mondial des symboles, alors le «KeyFor ()"La méthode reviendra"indéfini”Valeur pour la valeur spécifiée:

Soit EmployeeId = Symbol («EmployeeId»);
console.journal (symbole.KeyFor (EmployeeId));

Ici le "employé«Le symbole n'existe pas dans le registre mondial des symboles, car il est créé en utilisant le«Symbole()" au lieu de "Symbole.pour()«Méthode, et lorsque le«Symbole.pour()"La méthode le recherche dans le registre mondial des symboles, il est retourné"indéfini»:

Vous avez vu que la création et le partage des valeurs primitives du symbole est assez simple. La section suivante montrera comment vous pouvez utiliser ces symboles dans votre code JavaScript.

Comment utiliser des symboles pour créer des propriétés cachées d'un objet dans JavaScript

La valeur primitive du symbole javascript vous permet de créer caché propriétés d'un objet. À cette fin, vous pouvez créer un «symbole»Et utilisez-le comme clé de propriété d'un objet. La propriété créée sera ignorée par le pour… dans Loop, et un autre script ne pourrait pas y accéder directement parce que le «symbole"N'est pas inclus dans d'autres scripts. De cette façon, les symboles sont considérés comme idéaux pour cacher les propriétés des objets.

Exemple: comment utiliser les symboles pour créer des propriétés cachées d'un objet dans JavaScript

Tout d'abord, nous créerons un «articlestatus”Objet qui comprend les trois symboles suivants comme ses propriétés cachées:

Laissez ArticleStatus =
IN_PROGRESS: Symbole ('Article In Progress'),
Terminé: symbole («article terminé»),
Finalisé: Symbole («Article Finalisé»),
;

Dans l'étape suivante, nous ajouterons un autre symbole nommé «mon statut»:

Laissez mystatus = symbole ('mystatus');

Voici la partie passionnante, dans le «tâche"Objet, nous ajouterons deux propriétés, une est"description,»Et l'autre est« [[mon statut]". «[mon statut]«Est une propriété calculée de l'objet de tâche car elle est dérivée du«mon statut«Le symbole et sa valeur comprennent le«COMPLÉTÉ"Propriété cachée du"articlestatus" objet:

Soit Task =
[MyStatus]: Articlestatus.COMPLÉTÉ,
Description: «Type primitif du symbole javascript»
;
console.log (tâche);

Sortir

La sortie donnée ci-dessus signifie que les symboles fonctionnent parfaitement pour créer des propriétés cachées qui ne peuvent être accessibles qu'avec leurs objets associés.

Symboles bien connus en javascript

ES6 prend en charge de nombreux symboles prédéfinis qui contiennent le comportement commun de JavaScript, connu sous le nom de «bien connu”Symboles. Ces symboles bien connus représentent la propriété statique du «Symbole" objet.

Voyons les symboles les plus connues de JavaScript.

Symbole.Hasinstance en javascript

Symbole.hasée est un symbole qui est utilisé pour déterminer si l'objet constructeur identifie l'objet spécifié comme son instance ou non.

Syntaxe de symbole.Hasinstance en javascript

[Symbole.hasinstance] (objet)

Ici le "Symbole.hasée"Le symbole accepte un"objet"Comme argument.

Exemple: symbole.Hasinstance en javascript

En règle générale, lorsqu'un opérateur d'instance est utilisé comme «instance d'objet de type«, JavaScript invoque le«Symbole.hasée" symbole. Ensuite, cela vérifie si le «objet"Est une instance de l'autre spécifiée"taper”Objet ou pas.

Dans l'exemple suivant, le tableau «[]"N'est pas une instance du"Livre«Classe, donc le«exemple de"L'opérateur reviendra"FAUX«Comme sortie:

livre de classe

console.log ([] instance de livre);

Sortir

Vous pouvez ajouter le "Symbole.hasée"Symbole pour définir le tableau"[]"Comme instance du"Livre" Classe:

livre de classe
statique [symbole.Hasinstance] (obj)
retour de retour.ISArray (OBJ);


console.log ([] instance de livre);

Sortir

D'où le "exemple de"L'opérateur est revenu"vrai"Après avoir effectué la vérification spécifiée du tableau"[]".

Symbole.ISCONCATSPADABLE EN JavaScript

Le Symbole.ISCONCATSPADABLE Le symbole renvoie une valeur booléenne qui détermine si un objet spécifié est ajouté individuellement au résultat du "concat ()”Fonction ou non.

Syntaxe de symbole.ISCONCATSPADABLE EN JavaScript

[Symbole.ISCONCATSPADABLE]: Valeur

Ici, "valeur"Est utilisé pour définir le"booléen" valeur de Symbole.ISCONCATSPADABLE Symbole, où «vrai”Permet au symbole d'ajouter individuellement les éléments de l'objet et«FAUX”Va concaténer l'objet spécifié dans son ensemble.

Exemple: symbole.ISCONCATSPADABLE EN JavaScript

Premièrement, nous créerons un «obj1”JavaScript, qui a les propriétés suivantes:

Soit Obj1 =
0: 'JS',
1: «Type primitif symbole»,
Longueur: 2
;

Dans la prochaine étape, nous concaterons «obj1" avec ['Enseignement'] tableau en utilisant le «concat ()" fonction:

Laissez info = [«enseignement»].concat (obj1);
console.journal (info);

La fonction concat () ne répandra pas les éléments individuels de «obj1"Tout en le concaténant avec ['Enseignement'] déployer:

Si vous souhaitez ajouter individuellement les éléments de «obj1«Pour le tableau, vous devez ajouter le Symbole.ISCONCATSPADABLE Symbole comme propriété à «obj1»Et définissez sa valeur sur«vrai»:

Soit Obj1 =
0: 'JS',
1: «Type primitif symbole»,
Longueur: 2,
[Symbole.isConcats-predable]: true
;
Laissez info = [«enseignement»].concat (obj1);
console.journal (info);

Consultez la sortie en dessous; le "obj1"Des éléments sont ajoutés individuellement dans le résultat"Info" déployer:

Nous avons compilé toutes les informations essentielles liées au type primitif du symbole JavaScript.

Conclusion

En utilisant le Symbole() fonction globale, vous pouvez créer un type primitif de symbole javascript qui contient une valeur unique, tandis que le Symbole.pour() La méthode vous permet de créer un symbole qui peut être partagé à l'échelle mondiale. Le type primitif du symbole JavaScript est principalement utilisé pour définir les propriétés cachées d'un objet. Cet article a expliqué Type primitif du symbole javascript avec l'aide d'exemples appropriés.