DOM元素的JavaScript相等运算符是否跨浏览器?

DOM元素的JavaScript相等运算符是否跨浏览器?,javascript,cross-browser,equality,dom,Javascript,Cross Browser,Equality,Dom,对于DOM元素,=和=在所有浏览器中都能正常工作吗?如果代码以两种不同的方式获取对原始DOM元素的引用,那么它们在所有浏览器中是否都是相同的 对于DOM元素,==和===在所有浏览器中都能正常工作吗 是的,这些相等运算符将按照ECMAScript标准的定义工作 需要注意的是,==通常会做开发人员不期望的事情,例如与字符串值相比,转换为字符串。这将使以下陈述成为事实,尽管它可能不是期望的结果: document.createElement('div') == '[object HTMLDivEle

对于DOM元素,
=
=
在所有浏览器中都能正常工作吗?如果代码以两种不同的方式获取对原始DOM元素的引用,那么它们在所有浏览器中是否都是相同的

对于DOM元素,==和===在所有浏览器中都能正常工作吗

是的,这些相等运算符将按照ECMAScript标准的定义工作

需要注意的是,
==
通常会做开发人员不期望的事情,例如与字符串值相比,转换为字符串。这将使以下陈述成为事实,尽管它可能不是期望的结果:

document.createElement('div') == '[object HTMLDivElement]'

在大多数情况下,您需要使用
=
操作符。

@AndyRay,我为什么要关闭它?如果你想回答这个问题,那就去吧。如果你有推荐人会更好。@AndyRay,不,你没有。显然,您不熟悉堆栈溢出的注释和答案之间的区别。至少在将事件对象中的元素与存储到变量中的元素引用进行比较时,它对我很有效。我查看了规范。。。如果
x
y
是同一个对象,则运算符返回
true
。但这并不意味着各种DOM方法必须返回对同一DOM节点的引用,以便在JS中可以认为它们相等。在DOM规范中,我也没有发现这方面的任何东西。@Andy:没有,它是在询问同一个主机对象,特别是通过不同方法检索到的DOM对象在每个浏览器中是否相等。正如Felix所指出的,ECMAScript标准并没有真正提到DOM。