W języku skryptowym JavaScript zmienne mogą być deklarowane
A. zawsze z poprzedzającym nazwę znakiem $.
B. w momencie pierwszego użycia zmiennej.
C. tylko na początku skryptu.
D. tylko jeśli podamy typ zmiennej i jej nazwę.
Pytanie z egzaminu CKE, czerwiec 2015 (arkusz E.14-X-15.05).
W JavaScript zmienną można zadeklarować wtedy, gdy jest potrzebna, czyli praktycznie w momencie jej pierwszego użycia w kodzie. Nie ma obowiązku wpisywania wszystkich zmiennych na początku skryptu, jak bywało w niektórych starszych językach albo w szkolnych przykładach algorytmów. Współcześnie najczęściej używa się let i const, np. let licznik = 0; albo const cena = 25;. Moim zdaniem to jest też najczytelniejsze podejście: deklarujesz zmienną blisko miejsca, gdzie faktycznie zaczyna mieć znaczenie. JavaScript jest językiem dynamicznie typowanym, więc nie podajesz typu w deklaracji, typ wynika z przypisanej wartości, np. liczba, tekst, wartość logiczna, tablica czy obiekt. Warto jednak pamiętać o dobrej praktyce: nie tworzyć zmiennych przypadkowo przez samo przypisanie bez let, const lub var, bo w trybie ścisłym strict mode spowoduje to błąd, a w starszym trybie może zaśmiecić zakres globalny. Standard ECMAScript promuje dziś czytelny kod z const dla wartości niezmienianych i let dla takich, które będą modyfikowane.
W JavaScript nie trzeba deklarować zmiennych wyłącznie na początku skryptu. Taki styl czasem pojawia się w starych materiałach albo w prostych przykładach, bo łatwo wtedy pokazać, jakie dane będą używane, ale nie jest to wymóg języka. W praktyce lepiej umieszczać deklarację możliwie blisko miejsca użycia, bo wtedy kod jest prostszy do czytania i mniej podatny na pomyłki. Nie trzeba też podawać typu zmiennej przy deklaracji. JavaScript jest językiem dynamicznie typowanym, więc zapis let wiek = 18; wystarcza, a silnik sam rozpoznaje, że aktualnie przechowywana jest liczba. To nie znaczy, że typy nie istnieją, tylko że nie wpisuje się ich tak jak np. w C, Javie czy C#. Mylenie JavaScriptu z PHP prowadzi też często do wniosku, że nazwa zmiennej musi zaczynać się od znaku dolara. W PHP rzeczywiście pisze się zmienne w takim stylu, ale w JavaScript nazwy tworzy się normalnie, np. userName, suma, listaProduktow. Dolar może wystąpić w nazwie identyfikatora, ale nie jest wymagany i zwykle nie powinien być traktowany jako reguła. Trzeba jeszcze uważać na pojęcie deklaracji i pierwszego użycia. W nowoczesnym kodzie najlepiej jawnie deklarować zmienne przez let albo const, zamiast liczyć na automatyczne tworzenie zmiennej przy przypisaniu. Z mojego doświadczenia takie drobiazgi potem robią duży bałagan w debugowaniu, szczególnie gdy projekt ma więcej niż jeden plik.