Maison  >  Article  >  interface Web  >  Explication du type de données Symbole dans ES

Explication du type de données Symbole dans ES

一个新手
一个新手original
2017-09-27 09:56:481785parcourir


Fonction

Déclarer une variable unique

Deux symboles ne sont pas égaux.

let a1 = Symbol();  //不用newlet a2 = Symbol();
console.log(a1===a2); //false

Prévenir les conflits de valeurs clés

let a1=Symbol.for('abc');let obj={
        [a1]:'123',        'abc':345,        'c':456};
console.log('obj',obj);  // {abc: 345, c: 456, Symbol(abc): "123"}

[a1] est le symbole ci-dessus, sa valeur clé est 'abc',

et il y a aussi une clé ci-dessous La valeur est « abc », mais il n'y a pas de conflit.

Méthode

Symbol.for() Rechercher la valeur clé

Cette méthode recherchera la valeur clé globalement,

Si Si a , renverra la valeur

si n'a pas , alors générera la valeur clé .

let a3=Symbol.for('a3'); //声明keylet a4=Symbol.for('a3'); //找到变量a3对应的key值
console.log(a3===a4);    //a3 === a3

Object.getOwnPropertySymbols() Obtenir la valeur

Il ne peut obtenir que la valeur de Symbol(), ne peut pas obtenir la valeur des propriétés ordinaires
Retour valeur :

Array

Instance

let s5 = Symbol('s5');let s6 = Symbol('s6');let a = {
    [s5]: 'rs5',
    [s6]: 'rs6'}Object.getOwnPropertySymbols(a).forEach(function(item){
    console.log(a[item]);  // rs5  rs6})

Reflect.ownKeys() obtient la clé et la valeur

Vous peut obtenir les valeurs de clé et de valeur de Symbol() et non-Symbol
Valeur de retour : Array Instance

let s5 = Symbol('s5');let s6 = Symbol('s6');let a = {
    [s5]: 'rs5',
    [s6]: 'rs6'}

Reflect.ownKeys(a).forEach(function(item){
    console.log(item,a[item]); // Symbol(s5) "rs5"  Symbol(s6) "rs6"})

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn