gpt4 book ai didi

javascript - 为什么在删除之前使用点符号检查属性比直接删除属性更快?

转载 作者:数据小太阳 更新时间:2023-10-29 04:13:43 24 4
gpt4 key购买 nike

我问了this question ,事实证明,当从元素中删除属性时,首先使用 elem.xxx!==undefined 检查元素是否存在可以加快运行时间。 Proof .

为什么它更快?更多的代码要处理,您将不得不遇到 removeAttribute() 方法,无论您采用何种方式。

最佳答案

嗯,首先你需要知道的是 elem.xxxelem.getAttribute() 不同或与该属性相关的任何其他方法。

elem.xxx是DOM元素的属性,而属性和DOM内部HTML上的元素,既相似又不同。例如,以这个 DOM 元素为例:<a href="#">和这段代码:

//Let say var a is the <a> tag
a.getAttribute('href');// == #
a.href;// == http://www.something.com/# (i.e the complet URL)

但让我们采用自定义属性:<a custom="test">

//Let say var a is the <a> tag
a.getAttribute('custom');// == test
a.custom;// == undefined

所以你不能真正比较两者的速度,因为它们没有达到相同的结果。但是一个显然更快,因为属性是一种快速访问数据,而属性使用 get/hasAttribute DOM 函数。

现在,为什么没有条件更快?仅仅因为removeAttribute不关心属性是否丢失,它会检查是否丢失。

所以使用 hasAttribute之前 removeAttribute就像做两次检查,但是条件有点慢,因为它需要检查条件是否满足才能运行代码。

关于javascript - 为什么在删除之前使用点符号检查属性比直接删除属性更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22565494/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com