0
var elem1, elem2;

// document.forms is an HTMLCollection

elem1 = document.forms[0];
elem2 = document.forms.item(0);

alert(elem1 === elem2); // shows: "true"

elem1 = document.forms["myForm"];
elem2 = document.forms.namedItem("myForm");

alert(elem1 === elem2); // shows: "true"

ソース: https://developer.mozilla.org/en-US/docs/Web/API/HTMLCollection

上記のコード変数elem1では、elem2両方とも同じオブジェクト、つまりDOMノードを保持しています

知りたいのですが、ステートメントelem1 === elem2で実際に比較されているものは、TRUE式に評価されます。ですかnodeTypenodeValueそれともnodeName

4

2 に答える 2

4

None of the above.

The === operator checks for reference equality.
It will only ever return true if both expressions refer to the same object.

于 2013-10-01T15:55:31.747 に答える
2

実際に比較されるプロパティはありません。elem1elem2はオブジェクトへの参照であり、両方の変数が同じオブジェクトを指している場合があります。

==この場合、あなたも使用できたはずです。さらに、引数の===をチェックします。

于 2013-10-01T15:56:05.353 に答える