Wskaż poprawny zapis instrukcji zapisanej w języku JavaScript.
A.
document.write("Liczba π z dokładnością do 2 miejsc po przecinku ≈ " ; 3.14 );
B.
document.write("Liczba π z dokładnością do 2 miejsc po przecinku ≈ " 3.14 );
C.
document.write("Liczba π z dokładnością do 2 miejsc po przecinku ≈ " + 3.14 );
D.
document.write("Liczba π z dokładnością do 2 miejsc po przecinku ≈ " . 3.14 );
Pytanie z egzaminu CKE, czerwiec 2019 (arkusz E.14-X-19.06).
W tym zapisie poprawnie użyto operatora + do połączenia tekstu z liczbą: document.write("Liczba π z dokładnością do 2 miejsc po przecinku ≈ " + 3.14);. W JavaScript znak + ma dwa częste zastosowania: dodawanie liczb oraz konkatenację, czyli sklejanie napisów. Jeżeli po jednej stronie operatora znajduje się tekst, a po drugiej liczba, JavaScript automatycznie zamienia liczbę na tekst i tworzy jeden wspólny łańcuch znaków. Dzięki temu do dokumentu zostanie wypisane zdanie razem z wartością 3.14. To jest typowy mechanizm używany np. przy budowaniu komunikatów dla użytkownika, wyników obliczeń albo prostych podsumowań danych. Warto też zauważyć średnik na końcu instrukcji. W JavaScript często nie jest absolutnie wymagany przez mechanizm ASI, ale w praktyce branżowej średniki pomagają uniknąć niejednoznaczności i poprawiają czytelność kodu. Moim zdaniem dobrze jest się tego trzymać, szczególnie na początku nauki. Sama metoda document.write() działa, ale w nowoczesnych projektach częściej stosuje się manipulację DOM, np. textContent albo innerHTML, bo document.write() może nadpisać dokument, jeśli zostanie użyte po załadowaniu strony. Do nauki składni i operatorów ten przykład jest jednak bardzo sensowny.
W błędnych zapisach problemem jest przede wszystkim niezrozumienie, że JavaScript wymaga poprawnego operatora albo separatora między wartościami. Nie można po prostu postawić obok siebie napisu i liczby w wywołaniu funkcji, licząc na to, że interpreter sam się domyśli, co z nimi zrobić. Zapis w stylu document.write("tekst" 3.14); jest składniowo niepoprawny, bo między literałem tekstowym a liczbą brakuje operatora, przecinka albo innego poprawnego elementu języka. Parser JavaScriptu nie traktuje samej spacji jako znaku łączenia danych. Spacja poprawia czytelność, ale nie wykonuje żadnej operacji.
Mylenie kropki z operatorem łączenia to też dość częsty błąd, szczególnie u osób, które wcześniej widziały składnię innych języków. W JavaScript kropka służy głównie do dostępu do właściwości i metod obiektów, np. document.write albo Math.PI. Nie jest operatorem konkatenacji tekstu. Próba użycia kropki między tekstem a liczbą nie oznacza „doklej”, tylko prowadzi do niepoprawnej składni, bo po kropce oczekuje się nazwy właściwości, a nie zwykłej liczby zapisanej w ten sposób.
Średnik wewnątrz nawiasów funkcji również nie łączy argumentów. Średnik kończy instrukcję, więc w środku listy argumentów funkcji powoduje błąd składniowy. Jeśli chcemy przekazać kilka argumentów, używa się przecinków, choć w tym konkretnym zadaniu chodziło o utworzenie jednego tekstu wynikowego. Najbezpieczniejszym i najbardziej czytelnym rozwiązaniem jest operator + albo w nowoczesnym kodzie szablony tekstowe, np. `Liczba π ≈ ${3.14}`. Z mojego doświadczenia takie drobiazgi składniowe są ważne, bo później dokładnie te same zasady wracają przy obsłudze formularzy, komunikatów walidacyjnych i dynamicznym wypisywaniu danych na stronie.
Mylenie kropki z operatorem łączenia to też dość częsty błąd, szczególnie u osób, które wcześniej widziały składnię innych języków. W JavaScript kropka służy głównie do dostępu do właściwości i metod obiektów, np. document.write albo Math.PI. Nie jest operatorem konkatenacji tekstu. Próba użycia kropki między tekstem a liczbą nie oznacza „doklej”, tylko prowadzi do niepoprawnej składni, bo po kropce oczekuje się nazwy właściwości, a nie zwykłej liczby zapisanej w ten sposób.
Średnik wewnątrz nawiasów funkcji również nie łączy argumentów. Średnik kończy instrukcję, więc w środku listy argumentów funkcji powoduje błąd składniowy. Jeśli chcemy przekazać kilka argumentów, używa się przecinków, choć w tym konkretnym zadaniu chodziło o utworzenie jednego tekstu wynikowego. Najbezpieczniejszym i najbardziej czytelnym rozwiązaniem jest operator + albo w nowoczesnym kodzie szablony tekstowe, np. `Liczba π ≈ ${3.14}`. Z mojego doświadczenia takie drobiazgi składniowe są ważne, bo później dokładnie te same zasady wracają przy obsłudze formularzy, komunikatów walidacyjnych i dynamicznym wypisywaniu danych na stronie.