Maison > Article > interface Web > Quelles sont les nouvelles méthodes des objets JavaScript ?
Nouvelles méthodes pour les objets JavaScript : 1. "Object.is()", qui peut être utilisé pour comparer si deux valeurs sont strictement égales ; 2. "Object.assign()", qui peut être utilisé pour fusionner des objets ; et combinez tous les objets source. Les propriétés énumérables sont copiées dans l'objet cible.
L'environnement d'exploitation de ce tutoriel : système Windows 7, JavaScript version 1.8.5, ordinateur Dell G3.
Nouvelles méthodes des objets JavaScript
1. Object.is()
es6 Dans es6, pour comparer si deux valeurs sont strictement égales, nous avons trois méthodes, en utilisant l'opérateur d'égalité ' == ', l'opérateur d'égalité stricte '===' ou la méthode Object.is(), mais les deux premières méthodes ont des défauts et ne peuvent pas être utilisées dans certains scénarios spéciaux, alors que Object.is() ne le peut pas.
Object.is() se comporte fondamentalement de la même manière que l'opérateur '====',
mais il y a deux différences :
(1) +0 n'est pas égal à -0
(2) NaN est égal à lui-même
2, Object.assign()
(1) Object.assign() est utilisé pour fusionner des objets, en copiant toutes les propriétés énumérables de l'objet source dans l'objet cible
(2) Le premier paramètre de la méthode Object.assign() est l'objet cible et les paramètres suivants sont l'objet source.
Si l'objet cible et l'objet source ont des attributs portant le même nom, ou si plusieurs objets sources ont des attributs portant le même nom, les attributs suivants écraseront les attributs précédents.
Vous pouvez voir que b : 2 en deux couvertures b : 1 en une, c : 3 en trois couvertures c : 2 en deux
(3) S'il n'y a qu'un seul paramètre, Object.assign () renverra directement le paramètre
(4) Si le paramètre n'est pas un objet, il sera d'abord converti en objet puis renvoyé.
Vous pouvez voir que Object.assign() a converti la valeur 5 en un objet Number et a renvoyé
(5) non défini et null ne peut pas être converti en objets S'ils sont utilisés comme paramètres, une erreur sera signalée.
Si le paramètre non-objet apparaît à la position de l'objet source (c'est-à-dire pas le premier paramètre), les règles de traitement seront différentes. Ces paramètres seront convertis en objets, et seront ignorés s'ils ne peuvent pas être convertis en objets. Cela signifie qu'undefined et null ne signaleront pas d'erreur s'ils ne constituent pas le premier paramètre. La démonstration est la suivante
Les autres types de valeurs (c'est-à-dire les valeurs numériques, les chaînes et les valeurs booléennes) ne le sont pas. dans le premier paramètre (c'est-à-dire le premier paramètre), et aucune erreur ne sera signalée. Cependant, sauf que la chaîne sera copiée dans l'objet cible sous forme de tableau, les autres valeurs n'auront aucun effet.
Dans le code ci-dessus, v1 v2 v3 sont respectivement des chaînes, des valeurs booléennes et des valeurs numériques. Par conséquent, seules les chaînes sont combinées dans l'objet cible (sous la forme d'un caractère. tableau), et les valeurs numériques et les valeurs booléennes seront ignorées. En effet, seuls les objets wrapper de chaîne produisent des propriétés énumérables.
(6) Convertissez respectivement les valeurs booléennes, les valeurs numériques et les chaînes en objets d'emballage correspondants. Vous pouvez voir que leurs valeurs d'originesont copiées dans les propriétés internes de l'objet d'emballage [[PrimitiveValue]]
上面,这个属性是不会被Object.assign()
. Seuls les objets wrapper de chaîne produiront des propriétés littérales énumérables, et ces propriétés seront copiées.
Object.assign() a des restrictions sur les propriétés copiées. Il copie uniquement les propriétés de l'objet source lui-même (il ne copie pas les propriétés héritées), et
ne copie pas non plus les propriétés copiées. -propriétés énumérables (énumérables : faux).
【Recommandations associées : Tutoriel d'apprentissage Javascript】
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!