Коротко
Оба ищут элемент в DOM, но по-разному:
getElementById(id) — только по id, быстрее и проще.
querySelector(selector) — любой CSS-селектор, возвращает первый матч.
Примеры
const byClass = document.querySelector(".my-class");
const byId = document.getElementById("my-id");
const nested = document.querySelector("form .error:not(.hidden)");
| Метод | Что принимает | Что возвращает |
|---|
getElementById | строка id (без #) | элемент или null |
querySelector | CSS-селектор | первый элемент или null |
Нюансы для интервью
- В
getElementById("my-id") не пишут #.
querySelector("#my-id") тоже найдёт по id, но это селекторный движок.
- Для всех совпадений —
querySelectorAll (NodeList), не getElementById.
- Id в документе должен быть уникален; селектор может матчить много узлов — берётся первый.
Итог: id известен и стабилен → getElementById. Нужен гибкий CSS-поиск → querySelector.