Menu

Co to jest JavaScript? Język internetu w pigułce

Czym naprawdę jest JavaScript, gdzie działa, do czego służy i czym różni się od Javy i TypeScriptu. Konkretne wprowadzenie dla początkujących.

Na tej stronie są działające edytory: edytuj, uruchamiaj i od razu zobacz wynik.

JavaScript to język internetu

JavaScript to język programowania, który działa w przeglądarkach internetowych. Gdy strona reaguje na kliknięcie, sprawdza formularz, animuje menu albo ładuje nową treść bez przeładowania, to właśnie JavaScript. Każda przeglądarka na każdym urządzeniu ma wbudowany silnik JavaScript, dzięki czemu jest to jedyny język działający natywnie w sieci.

Dziś działa też poza przeglądarką. Node.js, Deno i Bun pozwalają używać JavaScriptu do serwerów, narzędzi wiersza poleceń, skryptów budujących i API. Ten sam język napędza frontend i backend, co w dużej mierze tłumaczy, dlaczego jest tak powszechny.

Mała próbka tego, jak wygląda JavaScript:

Trzy linie, trzy pomysły: deklaracja zmiennej, wywołanie wbudowanej funkcji, wypisanie stringa z szablonu. Wszystkie trzy zobaczysz na każdej stronie prawdziwego kodu JavaScript.

Gdzie działa JavaScript

Sam JavaScript to tylko specyfikacja języka (zwana ECMAScript). Żeby go uruchomić, potrzebujesz silnika, czyli programu, który czyta twój kod i go wykonuje. Spotkasz dwa miejsca:

  • Przeglądarki. Chrome i Edge używają V8. Firefox używa SpiderMonkey. Safari używa JavaScriptCore. Otwórz stronę, naciśnij F12 i wklej JavaScript do zakładki Console: wykona się od razu.
  • Node.js. Wyjmuje V8 z przeglądarki i daje mu dostęp do systemu plików, sieci i systemu operacyjnego. Dzięki temu możliwy jest JavaScript po stronie serwera.
// Uruchom w konsoli przeglądarki:
document.title = "Nowy tytuł karty";

// Uruchom w Node.js:
// $ node script.js

JavaScript w przeglądarce może operować na stronie (DOM), ale nie na twoim systemie plików. JavaScript w Node.js może czytać pliki i otwierać gniazda sieciowe, ale nie ma strony, którą mógłby zmieniać. Ten sam język, różne supermoce.

Do czego służy JavaScript

Krótka odpowiedź: do prawie wszystkiego, czego dotyka sieć. Dłuższa odpowiedź, mniej więcej w kolejności, w jakiej to spotkasz:

  • Interaktywne strony. Walidacja formularzy, rozwijane menu, okna modalne, wyszukiwanie na żywo, przeciąganie i upuszczanie.
  • Aplikacje jednostronicowe (SPA). Gmail, Figma, Notion, Linear: całe aplikacje renderowane i aktualizowane przez JavaScript, zwykle za pomocą frameworka takiego jak React, Vue albo Svelte.
  • Serwery backendowe. REST API, endpointy GraphQL i usługi czasu rzeczywistego zbudowane w Node.js, Express, Fastify albo NestJS.
  • Narzędzia do budowania i pracy. Bundlery (Vite, esbuild, webpack), lintery (ESLint), narzędzia do testów (Vitest, Jest).
  • Aplikacje wieloplatformowe. Aplikacje desktopowe przez Electron (VS Code, Slack, Discord) i mobilne przez React Native.

Pierwszego dnia nie musisz tego wszystkiego znać. Warto jednak wiedzieć, że to istnieje, żeby określenie „tylko JavaScript” nie brzmiało jak ograniczenie.

Jak naprawdę działa JavaScript

Bardzo uproszczony model: piszesz kod źródłowy, silnik parsuje go do wewnętrznej reprezentacji, a potem wykonuje. Nowoczesne silniki używają kompilacji JIT (just-in-time): szybko zaczynają interpretować kod, a potem w trakcie działania programu optymalizują często używane fragmenty do kodu maszynowego.

JavaScriptu nie kompilujesz do pliku binarnego przed wydaniem. Przekazujesz kod źródłowy przeglądarce (albo Node), a silnik zajmuje się resztą:

Wklej to do konsoli przeglądarki albo zapisz jako greet.js i uruchom node greet.js: wynik będzie taki sam. Bez kroku kompilacji, bez konfiguracji budowania, przy tak prostym kodzie nie trzeba niczego instalować.

JavaScript a Java

Brzmią podobnie, ale podobne nie są. JavaScript dostał taką nazwę w 1995 roku, żeby skorzystać z ówczesnej popularności Javy. Ta marketingowa decyzja myli początkujących do dziś.

JavaScriptJava
TypowanieDynamiczneStatyczne
Działa naPrzeglądarkach, Node.jsJVM
ParadygmatWieloparadygmatowy, oparty na prototypachObiektowy, oparty na klasach
KompilacjaJIT, bez wymaganego kroku budowaniaNajpierw kompilacja do kodu bajtowego

Jeśli ktoś mówi „nauczyłem się Javy, więc znam JavaScript”, to go nie zna. Traktuj je jako osobne języki, które przypadkiem mają wspólne cztery litery.

JavaScript a TypeScript

TypeScript to JavaScript z doczepionym systemem typów. Piszesz kod z adnotacjami typów, kompilator TypeScriptu je sprawdza, a wynikiem jest zwykły JavaScript, który działa wszędzie tam, gdzie działa JavaScript.

// JavaScript - types are implicit:
function add(a, b) {
    return a + b;
}

// TypeScript - types are explicit:
function add(a: number, b: number): number {
    return a + b;
}

Każdy poprawny plik JavaScript jest poprawnym plikiem TypeScript, co oznacza, że TypeScript nie jest konkurentem, tylko nadzbiorem. Większość dużych projektów używa dziś TypeScriptu, ale właściwa kolejność to najpierw nauka JavaScriptu. Nie zrozumiesz, co robi TypeScript, jeśli nie wiesz, do czego dodaje typy.

Krótka historia, żeby dziwactwa miały sens

JavaScript napisał w dziesięć dni w 1995 roku Brendan Eich w firmie Netscape. Ta historia ma znaczenie, bo część ostrych krawędzi języka (luźna równość, automatyczne wstawianie średników, typeof null === "object") wynika z decyzji podjętych pod ogromną presją czasu, a potem zamrożonych, żeby zachować wsteczną zgodność sieci.

Język jest standaryzowany jako ECMAScript, a nowa wersja ukazuje się co roku (przełomowa była ES2015: let, const, funkcje strzałkowe, klasy, moduły). Gdy ktoś mówi „ES6” albo „nowoczesny JavaScript”, ma na myśli mniej więcej zestaw funkcji z 2015 roku i późniejszych, który jest dziś powszechnie obsługiwany.

Nowoczesny JavaScript naprawdę przyjemnie się pisze. Starsze elementy nadal istnieją, ale w większości da się ich unikać dzięki nawykom, które omawiamy w całym tym kursie.

Co warto zapamiętać

  • JavaScript działa w każdej przeglądarce, a dzięki Node.js także na serwerach.
  • Służy do prawie wszystkiego, czego dotyka sieć: interfejsu, backendu, narzędzi, a nawet aplikacji desktopowych i mobilnych.
  • To nie Java. TypeScript to nadzbiór, który dodaje typy statyczne.
  • Język ma kilka historycznych dziwactw, a pisać będziesz w nowoczesnym JavaScripcie (ES2015+).

Dalej: uruchamianie JavaScriptu

Dość kontekstu, czas uruchomić trochę kodu. Następny dokument omawia trzy miejsca, w których jako początkujący będziesz uruchamiać JavaScript: konsolę przeglądarki, plik HTML i Node.js w wierszu poleceń.

Najczęściej zadawane pytania

Czym jest JavaScript w prostych słowach?

JavaScript to język programowania, który działa w przeglądarkach internetowych i na serwerach (przez Node.js). To dzięki niemu strony są interaktywne: reagują na kliknięcia, aktualizują się bez przeładowania, pobierają dane z API. To jedyny język, który działa natywnie w każdej przeglądarce.

Do czego służy JavaScript?

Do wszystkiego, od drobnych interakcji w interfejsie (rozwijane menu, walidacja formularzy) po pełne aplikacje webowe (Gmail, Figma, Notion), serwery backendowe (Node.js, Deno), aplikacje mobilne (React Native), aplikacje desktopowe (VS Code dzięki Electronowi) i narzędzia do budowania. Jeśli coś działa w przeglądarce albo komunikuje się z siecią, JavaScript prawdopodobnie ma w tym udział.

Czy JavaScript to to samo co Java?

Nie. To niezwiązane ze sobą języki o podobnych nazwach, co wynika z historycznego marketingu. Java to język ze statycznym typowaniem, oparty na klasach, działający na JVM. JavaScript ma typowanie dynamiczne, działa w przeglądarkach i Node, i jest zaprojektowany zupełnie inaczej. Tak naprawdę łączą je tylko pierwsze cztery litery.

Czym różni się JavaScript od TypeScriptu?

TypeScript to JavaScript z dodanym systemem typów. Piszesz kod z adnotacjami typów, kompilator je sprawdza, a wynikiem jest zwykły JavaScript. Każdy poprawny plik JavaScript jest też poprawnym TypeScriptem. Do nauki JavaScriptu nie potrzebujesz TypeScriptu, ale większość dużych projektów używa go dziś na co dzień.

Ilustracja języków programowania w Coddy

Ucz się programowania z Coddy

ZACZNIJ