Kurs JavaScript i TypeScript · Moduł 1: Podstawy JavaScript
Środowisko uruchomieniowe (przeglądarka, Node.js)
W tej lekcji9
W świecie Parku Jurajskiego naukowcy potrzebują specjalnych środowisk, aby dinozaury mogły przetrwać - od wodnych habitatów dla Mosasaurusa po gęste dżungle dla Velociraptorów. Podobnie JavaScript potrzebuje odpowiedniego środowiska uruchomieniowego, aby mógł działać i "ożywić" nasze aplikacje.
Czym jest środowisko uruchomieniowe?
Środowisko uruchomieniowe JavaScript (runtime environment) to przestrzeń, w której kod JavaScript jest wykonywany. Podobnie jak różne strefy w Parku Jurajskim dostosowane do potrzeb konkretnych gatunków dinozaurów, różne środowiska uruchomieniowe JavaScript mają swoje unikalne cechy i możliwości.
Przeglądarki jako środowisko uruchomieniowe
Pierwotnym i najbardziej rozpowszechnionym środowiskiem dla JavaScript są przeglądarki internetowe. To jak główny obszar wizytowy w Parku Jurajskim - miejsce, gdzie większość "gości" (użytkowników) spotyka się z "atrakcjami" (twoimi aplikacjami).
Anatomia środowiska przeglądarki
Przeglądarkowe środowisko JavaScript składa się z kilku kluczowych elementów:
Silnik JavaScript - "mózg" całej operacji, który interpretuje i wykonuje kod
- V8 (Chrome, Edge, Opera)
- SpiderMonkey (Firefox)
- JavaScriptCore (Safari)
- Nowoczesne silniki nie tylko interpretują kod: fragmenty wykonywane bardzo często kompilują w trakcie działania programu (JIT, just-in-time) do szybkiego kodu maszynowego.
DOM (Document Object Model) - reprezentacja strony HTML jako drzewo obiektów, które JavaScript może manipulować. To jak mapa genetyczna dinozaurów - określa strukturę i możliwości naszej strony.
BOM (Browser Object Model) - zestaw obiektów dostarczanych przez przeglądarkę do interakcji z oknem przeglądarki (np.
window,navigator,location). Można to porównać do systemów monitoringu i kontroli w Parku Jurajskim.Web API - dodatkowe interfejsy zapewniane przez przeglądarkę, takie jak:
- Fetch API (dla komunikacji sieciowej)
- Canvas i WebGL (dla grafiki)
- Web Storage (dla przechowywania danych)
- Geolocation, Camera, Microphone (dostęp do urządzeń)
To jak specjalistyczny sprzęt używany przez naukowców i strażników w Parku Jurajskim - rozszerza możliwości działania.
Ograniczenia środowiska przeglądarki
Przeglądarki, ze względów bezpieczeństwa, nakładają pewne ograniczenia na JavaScript:
- Ograniczony dostęp do systemu plików
- Ograniczona możliwość komunikacji między domenami (Same-Origin Policy)
- Brak bezpośredniego dostępu do zasobów sprzętowych
Te ograniczenia przypominają zabezpieczenia w Parku Jurajskim - chronią użytkowników przed potencjalnymi zagrożeniami, podobnie jak ogrodzenia elektryczne i fosy chronią gości parku przed niebezpiecznymi dinozaurami.
Node.js - kiedy JavaScript opuszcza przeglądarkę
W 2009 roku JavaScript dokonał tego, co wydawało się niemożliwe - podobnie jak dinozaury w Parku Jurajskim, które uciekły z wyspy - wyrwał się z ograniczeń przeglądarki i wkroczył na teren serwerów dzięki Node.js.
Czym jest Node.js?
Node.js to środowisko uruchomieniowe dla JavaScript oparte na silniku V8 Chrome, które pozwala na wykonywanie kodu JavaScript poza przeglądarką. To jak stworzenie nowego ekosystemu, gdzie gatunek dotychczas ograniczony do jednego środowiska może prosperować w zupełnie nowym.
Kluczowe cechy Node.js
Dostęp do systemu plików - możliwość odczytu i zapisu plików
1const fs = require('fs'); 2fs.writeFileSync('dinozaury.txt', 'T-Rex, Velociraptor, Triceratops');Moduły systemowe - możliwość organizacji kodu w pakiety i wykorzystania gotowych bibliotek
1const http = require('http'); 2const parkSystem = require('./park-monitoring-system');Nieblokujące I/O - wykonywanie operacji wejścia/wyjścia bez blokowania głównego wątku
1fs.readFile('dino-dna-sequences.txt', (err, data) => { 2 if (err) throw err; 3 console.log('DNA sekwencje załadowane!'); 4}); 5console.log('Analiza DNA rozpoczęta...'); // Wykonuje się przed załadowaniem plikuPełny ekosystem npm (Node Package Manager) - największy na świecie rejestr pakietów oprogramowania, podobny do różnorodności genetycznej w laboratorium Parku Jurajskiego
Zastosowania Node.js
Node.js znalazł swoje miejsce w wielu obszarach:
- Serwery API i web - Express.js, Nest.js, Koa.js
- Narzędzia deweloperskie - Webpack, Babel, ESLint
- Aplikacje czasu rzeczywistego - czaty, gry online, współpraca w czasie rzeczywistym
- Mikrousługi - małe, wyspecjalizowane aplikacje serwerowe
- Narzędzia wiersza poleceń - skrypty automatyzujące pracę programisty
Deno i inne ewolucyjne odgałęzienia
Podobnie jak ewolucja dinozaurów tworzyła nowe gatunki dostosowane do zmieniających się warunków, ekosystem JavaScript ewoluuje tworząc nowe środowiska uruchomieniowe:
- Deno - nowszy runtime stworzony przez oryginalnego twórcę Node.js, zaprojektowany z myślą o bezpieczeństwie i nowoczesnych funkcjach JavaScript
- Bun - ultraszybki runtime JavaScript i menadżer pakietów
- Electron - pozwala używać JavaScript do tworzenia aplikacji desktopowych
Wybór odpowiedniego środowiska
Wybór środowiska uruchomieniowego zależy od projektu, podobnie jak w Parku Jurajskim różne gatunki dinozaurów potrzebują różnych habitatów:
- Przeglądarka: Idealna dla aplikacji z interfejsem użytkownika, stron internetowych i aplikacji webowych
- Node.js: Doskonały do aplikacji serwerowych, narzędzi CLI i przetwarzania danych
- Środowiska hybrydowe: Dla aplikacji, które muszą działać zarówno na kliencie jak i serwerze
Narzędzia do pracy z różnymi środowiskami
Aby skutecznie zarządzać kodem działającym w różnych środowiskach (podobnie jak zarządzanie różnymi gatunkami dinozaurów), programiści używają:
- Bundlerów (webpack, Parcel, Rollup) - narzędzia pakujące kod dla różnych środowisk
- Transpilatorów (Babel) - przekształcających nowszy kod na starsze wersje
- Menadżerów pakietów (npm, yarn, pnpm) - do zarządzania zależnościami
- Systemów CI/CD - do automatyzacji testowania i wdrażania
Jak zacząć pracę z różnymi środowiskami
Przeglądarka
Najłatwiejszy sposób na rozpoczęcie pracy z JavaScript w przeglądarce:
Otwórz edytor tekstu i utwórz plik HTML:
1<!DOCTYPE html> 2<html> 3<head> 4 <title>Park Jurajski - JavaScript</title> 5</head> 6<body> 7 <h1>Witaj w Parku Jurajskim!</h1> 8 <script> 9 console.log("Dinozaury zostały uwolnione!"); 10 </script> 11</body> 12</html>Otwórz ten plik w przeglądarce i sprawdź konsolę deweloperską (F12 lub Prawy klik -> Zbadaj element -> Konsola)
Node.js
Aby rozpocząć pracę z Node.js:
Zainstaluj Node.js ze strony nodejs.org
Utwórz plik
park.js:1console.log("Witaj w Parku Jurajskim - Backend Edition!"); 2 3// Odczyt pliku 4const fs = require('fs'); 5try { 6 const dinoData = fs.readFileSync('dinos.json', 'utf8'); 7 const dinos = JSON.parse(dinoData); 8 console.log(`Załadowano dane ${dinos.length} dinozaurów`); 9} catch (err) { 10 console.log("Błąd dostępu do bazy danych dinozaurów:", err.message); 11}Uruchom skrypt w terminalu:
1node park.js
Debugowanie w różnych środowiskach
Przeglądarka
- Konsola deweloperska (F12)
- Breakpointy i inspekcja zmiennych
- Śledzenie wydajności i pamięci
Node.js
- Użycie flagi
--inspect - Debugowanie w VS Code
- Logi i monitoring
Podsumowanie
Środowiska uruchomieniowe JavaScript to różne "habitaty", w których nasz kod może żyć i działać. Podobnie jak w Parku Jurajskim, gdzie każdy gatunek dinozaura wymaga specjalnych warunków, różne typy aplikacji JavaScript najlepiej funkcjonują w odpowiednich dla siebie środowiskach.
Zrozumienie różnic między środowiskami przeglądarkowymi a serwerowymi, takimi jak Node.js, jest kluczowe dla efektywnego wykorzystania potencjału JavaScript. To jak wiedza na temat zachowania i potrzeb różnych gatunków dinozaurów - pozwala nam tworzyć rozwiązania, które będą dobrze prosperować w swoim ekosystemie.
W następnych lekcjach zaczniemy eksplorować składnię i możliwości samego języka, podobnie jak genetycy w Parku Jurajskim badali DNA dinozaurów, aby lepiej zrozumieć ich możliwości i ograniczenia.
Kod do tej lekcji: index.js
1// Terminal Parku Jurajskiego - System Logowania
2// Ćwiczenie: Używanie console.log() do wyświetlania informacji
3
4// console.log() wyświetla dane w konsoli
5console.log("=== System Logowania Parku ===");
6
7// Wyświetlanie różnych typów danych
8console.log("Status laboratorium: AKTYWNE");
9console.log("Liczba dinozaurów:", 42);
10console.log("System bezpieczeństwa:", true);
11
12// Twoje zadanie:
13// 1. Wyświetl komunikat "Status laboratorium: AKTYWNE"
14// 2. Wyświetl liczbę gatunków w parku
15// 3. Użyj console.log() z kilkoma argumentami oddzielonymi przecinkiem
16
17// Twój kod tutaj:
18Widzisz błąd w tej lekcji?
Sprawdź się
Odpowiedz na pytania z tej lekcji. Wybierz odpowiedź, a od razu zobaczysz, czy jest poprawna.
1. Gdzie można uruchomić kod JavaScript?
2. Który silnik JavaScript jest używany w przeglądarce Chrome?
3. Czym jest DOM (Document Object Model) w środowisku przeglądarki?
4. Która z poniższych cech jest charakterystyczna dla Node.js?
Zadania praktyczne w grze
- Układanie w pionie
Uporządkuj elementy środowiska uruchomieniowego przeglądarki od najniższego poziomu:
- Układanie w pionie
Uporządkuj etapy tworzenia strony internetowej: