W języku JavaScript poprawnie nadana zmienna to
A. imię%
B. #imie
C. imie2
D. 2imie
Opracowane na podstawie zadania CKE, wrzesień 2015 (arkusz E.14-X-15.08): Odpowiedź „imię2” zamieniona na „2imie”: JavaScript dopuszcza polskie litery w nazwach zmiennych, więc w arkuszu poprawne były dwie odpowiedzi.
Odpowiedź imie2 jest poprawna, bo w JavaScript identyfikator zmiennej może zaczynać się od litery, znaku podkreślenia _ albo znaku dolara $, a dalsze znaki mogą zawierać także cyfry. Dlatego nazwa imie2 spełnia zasady składni języka: zaczyna się od litery i dopiero później ma cyfrę. W praktyce można napisać np. let imie2 = 'Adam'; albo const cena2 = 49.99; i interpreter JavaScript potraktuje to jako poprawną deklarację. Moim zdaniem warto od razu wyrabiać sobie nawyk używania czytelnych nazw, np. imieUcznia, liczbaProduktow, cenaNetto, bo sam fakt, że nazwa jest technicznie poprawna, nie znaczy jeszcze, że jest dobra w projekcie. Standard ECMAScript dopuszcza też znaki Unicode w identyfikatorach, ale w branżowej praktyce najczęściej stosuje się litery alfabetu łacińskiego bez polskich znaków, żeby uniknąć problemów przy współpracy, konfiguracji narzędzi, kopiowaniu kodu i czytaniu go przez innych programistów. Dobra nazwa zmiennej powinna być poprawna składniowo, zrozumiała i zgodna z przyjętą konwencją, np. camelCase w JavaScript.
W nazwach zmiennych JavaScript obowiązują konkretne reguły składniowe i łatwo tu pomylić nazwę widoczną dla człowieka z identyfikatorem akceptowanym przez interpreter. Znak # na początku nie tworzy zwykłej zmiennej. W nowoczesnym JavaScript taki znak pojawia się przy prywatnych polach klas, np. wewnątrz definicji klasy można spotkać zapis #imie, ale to nie jest standardowa nazwa zmiennej deklarowanej przez let, const albo var. Próba zapisania let #imie = 'Anna'; zakończy się błędem składni. To częsta pułapka, bo ktoś kojarzy # z identyfikatorami z CSS albo z hashtagami, ale JavaScript ma własną gramatykę. Nazwa zaczynająca się od cyfry również jest niepoprawna, ponieważ parser odczytuje początek takiego zapisu jak liczbę, a nie jak identyfikator. Dlatego 2imie nie może być nazwą zmiennej, choć cyfra na końcu, jak w imie2, jest już dozwolona. Zapis imię% też nie przejdzie jako nazwa zmiennej. Sama litera ę może być dopuszczalna przez standard ECMAScript, bo identyfikatory mogą korzystać z wielu znaków Unicode, ale znak procenta % jest operatorem arytmetycznym modulo, a nie elementem nazwy. Z mojego doświadczenia najlepiej trzymać się prostych, czytelnych nazw bez znaków specjalnych: imie, imie2, imieUcznia. Kod jest wtedy łatwiejszy do debugowania, mniej zależny od ustawień edytora i bardziej zrozumiały dla zespołu.