Przejdź do głównej treści

Kwalifikacja: INF.04 - Projektowanie, programowanie i testowanie aplikacji

Zawód: Technik programista

Kategorie: Programowanie Projektowanie aplikacji

Słowa kluczowe: Funkcja strzałkowa w JavaScript Operator modulo Operatory arytmetyczne

Fragment kodu w języku JavaScript to
let modulo = (x, y) => x % y;

Ten fragment kodu w JavaScript to klasyczny przykład funkcji strzałkowej, czyli tzw. arrow function. To funkcja zdefiniowana w bardzo nowoczesny, oszczędny sposób, który pojawił się wraz z ES6 (ECMAScript 2015). Taki zapis pozwala na szybkie tworzenie prostych funkcji anonimowych, bez potrzeby używania słowa kluczowego 'function'. Ma to ogromne znaczenie np. przy pracy z wyrażeniami funkcyjnymi, callbackami albo wszędzie tam, gdzie liczy się zwięzłość kodu. Samo 'let modulo = (x, y) => x % y;' oznacza, że tworzymy zmienną 'modulo', która przechowuje funkcję przyjmującą dwa argumenty i od razu zwracającą resztę z dzielenia x przez y. Co ciekawe, funkcje strzałkowe różnią się od tradycyjnych tym, że nie mają własnego kontekstu this (dziedziczą go z otoczenia). To jest bardzo przydatne np. przy pracy w metodach klas lub obiektach, gdzie nie chcemy nieoczekiwanej zmiany kontekstu. Moim zdaniem warto nawykowo korzystać z tej składni, bo kod robi się dużo czytelniejszy i łatwiejszy w utrzymaniu. W różnych frameworkach (np. React) funkcje strzałkowe są wręcz codziennością – definiuje się tak np. proste event handlery czy filtry. No i jeszcze jedno: taka funkcja jest idealna, gdy chcemy przekazać logikę w jednym krótkim wyrażeniu bez robienia bałaganu w kodzie.
Wiele osób rozpoczynających naukę JavaScript często myli różne elementy składni, szczególnie gdy pojawiają się nowoczesne rozwiązania pochodzące z nowszych wersji języka. Cofnijmy się do analizy dostępnych odpowiedzi. 'Prototyp metody klasy' to termin odnoszący się do programowania obiektowego w JavaScript, gdzie metody są przypisywane do właściwości prototype konstruktora klasy, co pozwala wszystkim instancjom korzystać ze wspólnej implementacji. Jednak w tym przypadku nie mamy tu żadnej klasy, ani jawnego prototype, tylko zwykłą funkcję przypisaną do zmiennej. To zupełnie inny mechanizm. Następnie 'definicja zmiennej typu tablicowego' – to bardzo częste nieporozumienie. W JavaScript tablice tworzy się za pomocą nawiasów kwadratowych [], np. let arr = [1,2,3]. W podanym kodzie nie widać takiej składni, więc nie ma tu mowy o tablicy. Często myli się to, bo argumenty funkcji są czasem brane za elementy tablicy, ale to tylko parametry funkcji. Natomiast 'prototyp interfejsu' – to raczej pojęcie ze świata TypeScript lub programowania silniej typowanego (np. Java, C#). W czystym JavaScript nie istnieje coś takiego jak interfejs w sensie typów i ich prototypów. To może wynikać z mylenia pojęć, bo JavaScript ma prototypowe dziedziczenie, ale nie ma formalnych interfejsów. Moim zdaniem, takie nieporozumienia biorą się z mieszania terminologii pochodzącej z różnych paradygmatów programowania. W podanym przykładzie kluczowe jest zauważenie, że mamy do czynienia z funkcją strzałkową, która została wprowadzona, żeby upraszczać składnię i podnieść czytelność kodu. To nie jest ani metoda klasy, ani tablica, ani interfejs – po prostu nowoczesny sposób na definiowanie funkcji.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wyślemy tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.