将 NodeList 视为数组的正确方法?

好的,所以我知道使用 document.querySelectorAll(一个 NodeList)结果的“正确”方法的传统智慧是通过使用以下内容将其转换为数组:

Array.prototype.slice.call(elements)

但是,我一直在尝试将它们直接用作类数组对象,并且它似乎可以在以下结构中使用:

document.querySelectorAll('selector').forEach(elem => console.log(elem.tagName));

我的问题是,使用这种更方便的语法会产生意想不到的后果吗?


手掌心
浏览 310回答 2
2回答

长风秋雁

根据规范,querySelectorAll返回 a NodeList,它只保证拥有它的元素和length属性。因此,即使您的浏览器确实支持这一点,这也是一个坏主意。如果您正在寻找更方便的语法,您可以使用Array.from或 展开运算符:Array.from(document.querySelectorAll('selector')).forEach()[...document.querySelectorAll('selector')].forEach()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript