我最近一直在阅读有关不同选择器引擎效率的更多信息。我知道 jQuery 使用 Sizzle 引擎,这篇关于 jQuery 内容的博客文章提到 Sizzle 引擎会将您的选择器分解为一个数组,然后从左到右解析。
然后,它从右到左开始用正则表达式破译每个项目。这也意味着选择器的最右边部分应该尽可能具体——例如,一个 id 或标签名称。
我的问题是仅使用指定的 ID 或标签名称运行选择器是否更有效:
var div = $('#someId');
//OR
var div = $('div#someId');
由于我以我倾向于以相同方式执行我的选择器的形式编写我的 CSS div#someId
,我是否导致 Sizzle 执行额外的工作(假设QuerySelectorAll不可用)?