Ale brak elementu może świadczyć o jakiejś pomyłce programisty albo złych założeniach, więc dobrze, żeby programista to widział od razu i żeby błąd odstraszył go od wrzucenia tego na produkcję. A ukrywając błędy potem takie błędy mogą trafić łatwiej na produkcję i użytkownikowi końcowemu coś się źle wyświetli.
np. załóżmy, że mamy taki kod wrzucony kilka postów wyżej przez @rafal95p
Kopiuj
const myDIV = 0;
function captureDiv(elementId) {
if (document.getElementById(elementId)) {
myDIV = document.getElementById(elementId);
}
}
ten kod jest ciekawy, bo zawiera dwa błędy. Jeden jawny, który się od razu wywali i drugi błąd, który przejdzie niezauważony.
Pierwszy błąd czyli błędne użycie const zamiast let - i z tego powodu wywali się od razu, jak if będzie prawdziwy (TypeError: Assignment to constant variable.). I jest to w zasadzie malutki błąd, bo od razu przeglądarka go pokaże i po prostu zamieni się const na let i już. Więc zakładam, że ten kod nie trafi na produkcję w tej postaci.
Jednak jest drugi błąd, gdzie myDIV jest inicjalizowane do 0 (dlaczego do zero, zamiast do null czy undefined?). to jest błąd założeń, który z powodu słabego typowania JS nawet nie zostanie wykryty (w sensie to nie ma sensu, żeby inicjalizować myDIV do zero i gdyby JS był silnie typowany, to by to wykrył). I taki błąd łatwiej może trafić na produkcję i później generować dziwne bugi. np. załóżmy hipotetyczną sytuację, że mamy taki kod:
Kopiuj
const myDIV = 0;
//...
myDIV.innerText = "hello";
I taki kod przejdzie cicho, ale potem się zdziwimy czemu tekst nie zmienił się na hello i dopiero debugowanie byłoby potrzebne.