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

上面代码中的变量elem1elem2持有同一个对象,即一个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

实际上没有比较任何属性。elem1并且elem2是对对象的引用,并且碰巧两个变量都指向同一个对象。

==在这种情况下,您也可以使用。===另外检查参数的类型

于 2013-10-01T15:56:05.353 回答