【问题标题】:Is it better to check tagName or instanceof HTMLAnchorElement检查 tagName 或 instanceof HTMLAnchorElement 是否更好
【发布时间】:2016-05-01 15:32:27
【问题描述】:

如果我想检查一个特定的 DOM 节点是否是一个锚元素,哪个选项会更安全、更快?

为了更安全,我希望看看 IE6-8 等旧浏览器更好地支持哪个。

我假设不会有太大的速度差异,但如果一个函数在遍历 DOM 树时执行此检查,它可能会节省几毫秒。

【问题讨论】:

  • 从一开始就几乎支持这两种方法,即使在遍历 DOM 树时,最大的操作是查询/更改 DOM 节点,一旦你在内存中有一个 DOM 节点,这两种方法都会在性能方面保持±相同。
  • 毫秒 => 微秒
  • 您通常看到element.tagName.toUpperCase() === "A" 比instanceof 更频繁,不知道为什么,差异应该很小?我个人一般使用前者。
  • @RickHitchcock - 至少在所有当前的浏览器中肯定会,但确保不会有坏处,在这种情况下比较返回的字符串不敏感也很常见,因为它很容易做到.
  • @adeneo 我认为这是规范。

标签: javascript dom


【解决方案1】:

使用 javascript,proc 资源在 99% 的情况下不是优先级。 如果你必须检查 tagName,你最好使用明确暴露给你的 tagName。

而对我来说,instanceof 要长得多,因为你必须检查原型的类型,tagName 是一个已经设置好的属性。

【讨论】:

  • “在 99% 的情况下,proc 资源不是优先级”是什么意思?
猜你喜欢
  • 2012-03-06
  • 1970-01-01
  • 2015-05-01
  • 2012-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多