obiekt = { q: 1, w: 2, e: 3, r:4 }; W języku JavaScript utworzono obiekt. Aby pobrać wartość własności w, można zapisać
obiekt = { q: 1, w: 2, e: 3, r:4 };W języku JavaScript utworzono obiekt. Aby pobrać wartość własności w, można zapisać
A. obiekt:w
B. obiekt::w
C. obiekt->w
D. obiekt.w
Pytanie z egzaminu CKE, styczeń 2021 (arkusz EE.09-SG-21.01).
Poprawny zapis to obiekt.w, czyli tak zwana notacja kropkowa. W JavaScript obiekt przechowuje dane w parach: nazwa własności oraz jej wartość. W podanym przykładzie własność w ma wartość 2, więc wyrażenie obiekt.w zwróci właśnie 2. To jest bardzo często używany sposób dostępu do danych w obiektach, np. użytkownik.imie, produkt.cena albo formularz.email. Moim zdaniem warto od razu zapamiętać, że kropka działa wtedy, gdy nazwa własności jest poprawnym identyfikatorem JavaScript, czyli np. nie zawiera spacji i nie zaczyna się od cyfry. Alternatywnie można użyć zapisu obiekt['w'], który przydaje się, gdy nazwa pola jest przechowywana w zmiennej albo zawiera nietypowe znaki. W praktyce branżowej notacja kropkowa jest czytelna, krótka i zgodna ze standardową składnią ECMAScript, dlatego spotkasz ją prawie wszędzie: przy pracy z danymi JSON, konfiguracją aplikacji, obiektami DOM czy odpowiedziami z API.
W JavaScript trzeba odróżniać składnię tworzenia obiektu od składni odczytywania jego własności. Dwukropek pojawia się w literałach obiektowych, czyli w momencie definiowania par klucz-wartość, na przykład q: 1 albo w: 2. Nie służy on jednak do pobierania wartości z istniejącego obiektu. Zapis podobny do obiekt:w może się komuś kojarzyć z tym, co było w definicji obiektu, ale to jest właśnie typowa pułapka: inna składnia obowiązuje przy deklarowaniu danych, a inna przy odczycie. Podwójny dwukropek również nie jest standardowym operatorem dostępu do pola obiektu w JavaScript. W niektórych językach lub kontekstach programistycznych można spotkać podobne konstrukcje, ale nie tutaj, więc przepisanie nawyku z innej technologii prowadzi do błędu. Zapis ze strzałką, czyli coś w stylu obiekt->w, jest charakterystyczny raczej dla PHP przy dostępie do właściwości obiektu albo dla C/C++ w kontekście wskaźników. JavaScript używa kropki albo nawiasów kwadratowych, np. obiekt.w oraz obiekt['w']. Z mojego doświadczenia wynika, że najłatwiej to zapamiętać tak: dwukropek ustawia wartość w obiekcie, kropka ją odczytuje. To uproszczenie nie opisuje całego języka, ale na start działa całkiem dobrze i pomaga uniknąć mieszania składni kilku języków naraz.