ホームページ > ウェブフロントエンド > jsチュートリアル > 同じ JavaScript オブジェクトが等価性チェックに失敗するのはなぜですか?

同じ JavaScript オブジェクトが等価性チェックに失敗するのはなぜですか?

Linda Hamilton
リリース: 2024-12-08 03:56:09
オリジナル
784 人が閲覧しました

Why Do Identical JavaScript Objects Fail Equality Checks?

謎の解明: 同一プロパティのオブジェクトが等価性チェックに失敗する理由

JavaScript の領域では、等価演算子 (== と = ==) は、同じプロパティを持つオブジェクトを比較するときに予期しない動作をするようです。この異常は、JavaScript のオブジェクト比較の基本原則に由来しています。

次のコードを考えてみましょう:

var a = {};
var b = {};

console.log(a == b); // returns false
console.log(a === b); // returns false
ログイン後にコピー

興味深いことに、オブジェクト 'a' と 'b' は同一のプロパティを持っていますが、等価性チェックの結果は false です。同一のプロパティを持つオブジェクトは等しいとみなされると予想されるため、この動作は直観に反するように思えます。

この現象を理解するには、通常の等価性 (==) と厳密な等価性 (===) の違いを認識することが重要です。厳密な等価 (===) では型変換が無効になりますが、どちらの場合でも、オブジェクト比較はまったく同じオブジェクトが比較される場合にのみ true と評価されます。

言い換えれば、使用される等価演算子の種類に関係なく、原則は同じままです: オブジェクトは、まったく同じインスタンスを参照する場合にのみ等しいです。したがって、同一のプロパティを持つ 2 つの異なるオブジェクト (この例の「a」と「b」など) は、JavaScript の観点からは決して等しくありません。

オブジェクトのプロパティの等しいことを確認する必要がある場合は、オブジェクトを走査してそのプロパティ値を 1 つずつ比較するなど、別のアプローチを検討することを検討してください。

以上が同じ JavaScript オブジェクトが等価性チェックに失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート