jQueryの強力な機能のひとつに、 $('#the-target') のようにCSSのセレクターを用いて要素検索できるというものがあります。この要素検索を行うモジュールにはSizzleという名前が付けられています。

一方、近代的なブラウザーには .querySelectorAll() がネイティブで実装されています。こちらもCSSのセレクターで要素検索できるメソッドです。

var $elems = $('elem#id.class, .and.more.selectors');
var elems = document.querySelectorAll('elem#id.class, .and.more.selectors');

JavaScriptで何かするよりも、ネイティブでやった方が高速です。じゃあSizzleなんていらないんじゃないの?と思われるかもしれません。実際、jQuery互換軽量フレームワークを詠うZepto.jsでは、ほとんどそのまま querySelectorAll() を利用しています。(そのために古いIEでは正常に動作しませんが。)

それでもjQueryはSizzleを使い続ける方針です。Sizzleが .querySelectorAll() に勝る点とは、何でしょうか。

参考