Допустим, у меня есть 2 html-страницы (главная и примерно), внутри домашней страницы у меня есть такой заголовок
<header id = "#header">
some code
</header>
и этот заголовок находится только на домашней странице, поэтому, если я выбрал этот заголовок в основном файле сценария java
const header = document.getElementById('#header');
он выдаст мне сообщение об ошибке на странице, потому что на этой странице нет такого понятия, как заголовок, так как же предотвратить такие ошибки? мне нужно вместо этого сделать его локальной переменной?
на самом деле я сделал что-то вроде этого
if ( body.className = 'home' ) {
some code
}
таким образом, я буду уверен, что страница about не будет иметь доступа ни к чему, что связано с домашней страницей, но разве это плохая практика?
const header = document.getElementById('#header'); должен просто дать нулевой результат. Вы можете протестировать if (header) перед его использованием



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Есть много способов, как это можно улучшить. Самый прямой ответ на ваш вопрос заключается в том, что document.getElementById возвращает null, если элемент не найден. Поэтому поместите любой код, зависящий от header, в условие, которое проверяет наличие null.
if (header) { ... }
Вы можете использовать тернарный оператор в javascript, например
const header = document.getElementById('#header')?document.getElementById('#header'):null;
Следовательно, это не даст ошибки, и везде, где вы хотите его использовать, вы можете использовать нулевую проверку с помощью оператора if.
Это не лучший вариант использования тернарного оператора. Эту же строку лучше сократить до const header = document.getElementById('#header') || null;, но в этом нет необходимости, потому что document.getElementById либо возвращает узел DOM, либо сам null.