ホームページ >ウェブフロントエンド >フロントエンドQ&A >JavaScript オブジェクトの新しいメソッドとは何ですか?

JavaScript オブジェクトの新しいメソッドとは何ですか?

青灯夜游
青灯夜游オリジナル
2022-01-12 14:03:403489ブラウズ

JavaScript オブジェクトの新しいメソッド: 1. 2 つの値が厳密に等しいかどうかを比較するために使用できる「Object.is()」; 2. 2 つの値が厳密に等しいかどうかを比較するために使用できる「Object.assign()」オブジェクトをマージするために使用されます。ソース オブジェクトのすべての列挙可能なプロパティがターゲット オブジェクトにコピーされます。

JavaScript オブジェクトの新しいメソッドとは何ですか?

このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。

#JavaScript オブジェクトの新しいメソッド

1. Object.is()

es6 では、2 つの値が厳密に等しいかどうかを比較するために、等価演算子 '=='、厳密等価演算子 '==='、または Object.is() メソッドを使用する 3 つのメソッドがありますが、最初の2 つのメソッド すべてに欠陥があり、一部の特殊なシナリオでは使用できませんが、Object.is() は使用できません。

Object.is() は基本的に '===' 演算子

と同じように動作しますが、 2 つの点が異なります:

# (1) 0 は -0 に等しくありません

# (2) NaN はそれ自体に等しい

2. Object.assign()

(1) Object.assign() はオブジェクトをマージし、ソースのすべての列挙可能なプロパティをコピーするために使用されます。オブジェクトからターゲット オブジェクトへ

# (2) Object.assign() メソッドの最初のパラメータはターゲット オブジェクトであり、次のパラメータは次のとおりです。パラメータはソース オブジェクトです。

ターゲット オブジェクトとソース オブジェクトに同じ名前の属性がある場合、または複数のソース オブジェクトに同じ名前の属性がある場合、後の属性で前の属性が上書きされます。

b: 2 in 2 が b: 1 in 1 をカバーし、c: 3 in 3 が c を 2 でカバーしていることがわかります。 : 2

(3) パラメータが 1 つだけの場合、Object.assign() はパラメータ

# を直接返します。 ##(4) パラメータがオブジェクトでない場合は、オブジェクトに変換されてから返されます。

Object.assign() が値 5 を Number オブジェクトに変換し、

(5) 未定義および null を変換できないことがわかります。オブジェクト、それらをパラメータとして使用すると、エラーが報告されます

#オブジェクト以外のパラメータがソース オブジェクトの位置に表示される場合 (つまり、最初のパラメータではない)、処理ルールは異なります。これらのパラメータはオブジェクトに変換されますが、オブジェクトに変換できない場合はスキップされます。これは、未定義および null が最初のパラメータでない場合、エラーを報告しないことを意味します。デモは次のとおりです。

その他の型値 (つまり、数値、文字列、およびブール値) が最初のパラメーター (つまり、最初のパラメーター) に含まれていないため、エラーは報告されません。ただし、文字列が配列の形式でターゲット オブジェクトにコピーされることを除いて、他の値は効果がありません。

上記のコードでは、v1 v2 v3 はそれぞれ文字列、ブール値、数値です。文字列のみがターゲット オブジェクト ((文字配列として) に結合されます。数値とブール値は無視されます。これは、文字列ラッパー オブジェクトのみが列挙可能なプロパティを生成するためです。

(6) ブール値、数値、文字列をそれぞれ対応するパッケージング オブジェクトに変換します。元の値はすべてパッケージング オブジェクトの内部属性にあることがわかります。[[PrimitiveValue]] 上記では、このプロパティは Object.assign() によってコピーされません。文字列ラッパー オブジェクトのみが列挙可能なリテラル プロパティを生成し、それらのプロパティはコピーされます。

#Object.assign() によってコピーされる属性は制限されており、ソース オブジェクトのみがコピーされます。独自のプロパティ (継承されたプロパティはコピーされません)、および列挙不可能なプロパティ (列挙可能: false) はコピーされません。

[関連する推奨事項:

JavaScript 学習チュートリアル

]

以上がJavaScript オブジェクトの新しいメソッドとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。