Maison >interface Web >js tutoriel >Affectation d'objet ES6 et symbole

Affectation d'objet ES6 et symbole

php中世界最好的语言
php中世界最好的语言original
2018-03-10 15:00:261874parcourir

Cette fois, je vais vous apporter l'affectation et le symbole des objets ES6. Quelles sont les précautions lors de l'utilisation de l'affectation et du symbole des objets ES6. Ce qui suit est un cas pratique, jetons un coup d'œil.

Fusionner l'affectation des objets :

//es6语法允许变量直接为对象的赋值,快捷方便;
let liu="呵呵哒";
let long="赖皮哒";
let a={liu,long};
console.log(a) ;
//es6语法允许为对象构建key值;
let key='skill';
var obj={ [key]:'web'}
console.log(obj.skill);
//es6语法允许直接合并对象;
let s={liuliu:"wowoda",age:20};
let ss={long:"赖皮"};
let sss=Object.assign(s,ss);
console.log(sss);
//object.is()方法判断是否相等;

Les deux signes égaux effectueront automatiquement une conversion de type lors de la comparaison, mais les trois signes égaux ne le feront pas. les types sont différents, false sera renvoyé directement,

et Object.is() est basé sur le troisième signe égal et gère spécialement NaN, -0, +0, garantissant que -0 et +0 ne sont plus pareil,

mais il convient de noter que Object.is(NaN, NaN) retournera true

Symbole : En tant que nouveau type de données dans es6 Sora : Le la signification littérale de Symbol est symbolique, représentant le caractère unique de quelque chose ;

 let myId=Symbol();
 let myname=Symbol();          
 console.log (myname)       ===>Symbol()
 typeof myname             ===>symbol
 console.log(myId===myname)        ===>false

Le symbole peut être considéré comme un type de données de base similaire à String ; être converti implicitement ;

Un Symbol() peut être considéré comme créant une nouvelle fonction en mémoire (il n'est donc pas faux de dire que les parenthèses sont le symbole d'une fonction

Le Symbole) ; la fonction peut également transmettre des paramètres ; les paramètres ne sont utilisés que comme description de ce Symbo

 let myId=Symbol("id");
 let myname=Symbol("名字");

Même si les paramètres de deux Symboles sont les mêmes, ils ne sont pas égaux car un nouveau est créé ; espace mémoire ;

La plus grande utilisation du symbole est en tant qu'attribut d'un objet pour garantir l'unicité

 let system=Symbol();
 let foo={};
 foo[system]="windows";       //还可以保证key值为symbol类型的不被 for in遍历出来;
                                            //同样还证明了一点:对象的访问方式,要么以 . ;要么以["这里必须是字符串"];js的底层全部是字符串这种实现;
 console.log(foo);

Le symbole peut également partager un logo ; >

Symbol.for(" ") ne crée pas une nouvelle mémoire à chaque fois ; il y en a au plus une si le flag aaa n'existe pas dans la page, il en créera un, et si c'est le cas, il le fera directement ; faites référence à l'adresse précédente. ;
 let sy=Symbol.for("aaa");

Par exemple :

Ensuite : console.log(sy===cccc); En fin de compte, il est garanti que quelqu'un a une description aaa Le caractère unique du type de symbole ;
 let cccc=Symbol.for("aaa");

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes. sur le site PHP chinois !

Lecture connexe :

Explication détaillée de l'affectation de déstructuration dans ES6


Explication détaillée de la portée et de la déclaration des variables dans ES6

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