Littéraux d'objet
Notation abrégée pour les propriétés
ES6 permet d'écrire directement les propriétés d'objet sous forme de variables ; le nom de la propriété est le nom de la variable, et la valeur de la propriété est la valeur de la variable.
Les noms de méthodes peuvent aussi être abrégés
S'il s'agit d'une fonction génératrice, ajoutez un astérisque devant :
Expressions de noms de propriétés
ES6 permet d'utiliser des expressions comme noms de propriétés, mais l'expression doit être placée entre crochets.
Remarque : la notation abrégée pour les propriétés et les expressions de nom de propriété ne peuvent pas être utilisées en même temps, sinon une erreur sera levée.
Opérateur de propagation d'objet
L'opérateur de propagation (...) est utilisé pour extraire toutes les propriétés énumérables de l'objet passé en paramètre et les copier dans l'objet courant.
Utilisation de base
Peut servir à fusionner deux objets
Notes
Lorsque des propriétés personnalisées ont le même nom que les propriétés de l'objet de l'opérateur spread :Si la propriété personnalisée vient après l'opérateur spread, la propriété portant le même nom à l'intérieur de l'objet de l'opérateur spread sera écrasée.
Si la propriété personnalisée vient avant l'opérateur spread, cela revient à définir des valeurs de propriété par défaut pour le nouvel objet.
Si l'opérateur de décomposition est suivi d'un objet vide, il n'a aucun effet et ne lance pas d'erreur.
Si l'opérateur de décomposition est suivi de null ou undefined, il n'a aucun effet et ne lance pas d'erreur.
Nouvelles méthodes pour les objets
Object.assign(target, source_1, ···)
Utilisé pour copier toutes les propriétés énumérables des objets sources vers l'objet cible.
Utilisation de base
- Si l’objet cible et un objet source ont une propriété du même nom, ou si plusieurs objets source ont une propriété du même nom, la propriété définie plus tard écrasera la précédente.
- Si la fonction n’a qu’un seul paramètre, lorsque ce paramètre est un objet, elle renvoie directement l’objet ; lorsque le paramètre n’est pas un objet, elle convertit d’abord le paramètre en objet, puis le renvoie.
Comme null et undefined ne peuvent pas être convertis en objets, une erreur est levée :
Notes
La copie des propriétés par assign est une copie superficielle :
Remplacement des propriétés de même nom
Gestion des tableaux
Il traite les tableaux comme des objets, donc [2,3] est d'abord converti en {0:2,1:3}, puis la copie des propriétés est effectuée, de sorte que la propriété 0 de l'objet source écrase la propriété 0 de l'objet cible.
Object.is(value1, value2)
Sert à comparer si deux valeurs sont strictement égales, globalement similaire à (===).
Utilisation de base
Utilisation de base
Différences par rapport à (===)