Javascript的HTMLCollection中的对象变量比较

时间:2013-10-01 15:52:35

标签: javascript dom

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"

Src:https://developer.mozilla.org/en-US/docs/Web/API/HTMLCollection

在上面的代码变量elem1elem2中都保存相同的对象,即DOM节点

我想知道,在elem1 === elem2声明中,实际上是在比较什么 以便它评估为TRUE表达式。是nodeTypenodeValue还是nodeName

2 个答案:

答案 0 :(得分:4)

以上都不是。

===运算符检查引用是否相等 如果两个表达式都引用同一个对象,它将只返回true。

答案 1 :(得分:2)

实际上没有比较任何财产。 elem1elem2是对象的引用,并且两个变量都指向同一个对象。

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