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
在上面的代码变量elem1
和elem2
中都保存相同的对象,即DOM节点
我想知道,在elem1 === elem2
声明中,实际上是在比较什么
以便它评估为TRUE
表达式。是nodeType
,nodeValue
还是nodeName
?
答案 0 :(得分:4)
以上都不是。
===
运算符检查引用是否相等
如果两个表达式都引用同一个对象,它将只返回true。
答案 1 :(得分:2)
实际上没有比较任何财产。 elem1
和elem2
是对象的引用,并且两个变量都指向同一个对象。
在这种情况下,您也可以使用==
。 ===
另外检查参数的类型。