Для того, щоб повністю зрозуміти, що швидше, ви повинні зрозуміти, як працює синтаксичний аналізатор CSS.
Селектор, який ви передаєте, ділиться на впізнавані частини за допомогою RegExp, а потім обробляє поштучно.
Деякі селектори, такі як ID та TagName, використовують швидше вбудовану реалізацію браузера. У той час як інші, як клас та атрибути, запрограмовані окремо, тому вони набагато повільніші, вимагаючи перегляду вибраних елементів та перевірки кожного імені класу.
Тож так, щоб відповісти на ваше запитання:
$ ('tag.class') швидше, ніж просто $ ('. class'). Чому? У першому випадку jQuery використовує реалізацію власного браузера, щоб відфільтрувати виділення до потрібних вам елементів. Тільки тоді він запускає повільнішу реалізацію .class, фільтруючи до того, про що ви просили.
У другому випадку jQuery використовує свій метод для фільтрації кожного елемента, захоплюючи клас.
Це поширюється далі, ніж jQuery, оскільки всі бібліотеки javascript базуються на цьому. Єдиним іншим варіантом є використання xPath, але в даний час він не дуже добре підтримується серед усіх браузерів.