Opis
JavaScript ma długą i ciekawą historię. Obecnie to jeden z najpopularniejszych języków programowania. Jego zalety to nowoczesność, wszechstronność, elastyczność i wydajność. Jest przy tym idealny dla początkujących użytkowników: można się go łatwo nauczyć i równocześnie od razu przyzwyczaić się do stosowania dobrych praktyk i pisania czystego, ładnego kodu. Mimo to uzyskanie prawdziwej biegłości wymaga pracy i ćwiczeń. Jest to jednak wysiłek, który warto podjąć, gdyż JavaScript jest doskonałym wyborem dla profesjonalnych twórców aplikacji. Co więcej, wszystko wskazuje na to, że jeszcze długo będzie rozwijany i doskonalony przez skupioną wokół niego społeczność entuzjastów.To trzecie, wzbogacone i uzupełnione wydanie popularnego podręcznika programowania dla początkujących. Znalazło się tu wyczerpujące wyjaśnienie podstawowych zasad programowania oraz struktury języka JavaScript. Omówiono techniki testowania kodu i obsługi błędów, tworzenia kodu modułowego, zaprezentowano również koncepcję programowania asynchronicznego. Już na początku pokazano przykłady kodu, opisy projektów oraz liczne ćwiczenia do samodzielnego wykonania. Poszczególne koncepcje i techniki są przedstawiane na przykładach konkretnych, działających aplikacji, takich jak gra przeglądarkowa, prosty język programowania i program do rysowania.W książce między innymi:solidne podstawy: składnia, struktury sterujące i praca z danymizasady programowania obiektowego i funkcyjnegotworzenie skryptów do wykonywania w przeglądarkachpodstawy projektowania aplikacji sieciowychmodel DOM i jego zastosowaniekorzystanie z Node.jsJavaScript: oto język Internetu!Spis treści:Wprowadzenie 19CZĘŚĆ I. JĘZYK1. Wartości, typy i operatory 31Wartości 32Liczby 32Arytmetyka 33Liczby specjalne 34Łańcuchy 35Operatory jednoargumentowe 36Wartości logiczne 37Porównywanie 37Operatory logiczne 38Wartości puste 39Automatyczna konwersja typów 40Skrócona metoda wyznaczania wartości wyrażeń logicznych 41Podsumowanie 422. Struktura programu 45Wyrażenia i instrukcje 45Wiązania 46Nazwy wiązań 48Środowisko 49Funkcje 49Funkcja console.log 50Wartości zwrotne 50Sterowanie sposobem wykonywania programu 51Wykonywanie warunkowe 51Pętle while i do 53Stosowanie wcięć w kodzie 55Pętle for 56Wychodzenie z pętli 56Zwięzłe modyfikowanie wiązań 57Rozdzielanie zadań przy użyciu instrukcji switch 58Stosowanie wielkich liter 59Komentarze 59Podsumowanie 60Ćwiczenia 60Pętlowy trójkąt 61FizzBuzz 61Szachownica 613. Funkcje 65Definiowanie funkcji 65Wiązania i zakresy 67Zagnieżdżone zakresy dostępności 68Funkcje jako wartości 68Sposób deklarowania funkcji 69Funkcje strzałkowe 69Stos wywołań 70Argumenty opcjonalne 72Zamknięcia 73Rekurencja 74Hodowanie funkcji 77Funkcje i skutki uboczne 79Podsumowanie 80Ćwiczenia 81Minimum 81Rekurencja 81Liczenie znaków 814. Struktury danych – obiekty i tablice 83Wiewiórkołak 84Zbiory danych 84Własności 85Metody 86Obiekty 87Zmienność 89Dziennik wiewiórkołaka 90Obliczanie korelacji 92Pętle tablicowe 94Ostateczna analiza 94Dalsza tablicologia 96Łańcuchy i ich własności 97Parametry resztowe 99Obiekt Math 100Destrukturyzacja 102JSON 103Podsumowanie 104Ćwiczenia 104Suma przedziału liczb 104Odwracanie tablicy 104Lista 105Porównywanie głębokie 1065. Funkcje wyższego rzędu 109Abstrakcja 110Abstrakcja powtarzalnych operacji 111Funkcje wyższego rzędu 112Zbiór danych na temat alfabetów 113Filtrowanie tablicy 114Przekształcanie tablic za pomocą metody map 115Podsumowywanie przy użyciu metody reduce 115Składalność 117Łańcuchy i kody znaków 118Rozpoznawanie tekstu 120Podsumowanie 121Ćwiczenia 122Spłaszczanie 122Własna pętla 122Wszystko 122Dominujący kierunek pisma 1226. Sekretne życie obiektów 125Hermetyzacja 125Metody 126Prototypy 127Klasy 129Notacja klasowa 130Przesłanianie dziedziczonych własności 131Mapy 132Polimorfizm 134Symbole 135Interfejs Iterator 136Metody pobierające i ustawiające oraz własności statyczne 138Dziedziczenie 139Operator instanceof 141Podsumowanie 141Ćwiczenia 142Typ wektorowy 142Grupy 142Grupy umożliwiające iterację 143Pożyczanie metody 1437. Projekt – robot 145Meadowfield 145Zadanie 147Zapisywanie danych 148Symulacja 149Trasa dla samochodu dostawczego 151Szukanie drogi 152Ćwiczenia 154Porównywanie robotów 154Efektywność robota 154Trwała grupa 1548. Błędy i obsługa błędów 157Język 157Tryb ścisły 158Typy 159Testowanie 160Debugowanie 161Propagacja błędów 163Wyjątki 164Sprzątanie po wyjątkach 165Selektywne przechwytywanie wyjątków 167Asercje 169Podsumowanie 170Ćwiczenia 170Spróbuj jeszcze raz 170Zamknięte pudełko 1709. Wyrażenia regularne 173Tworzenie wyrażeń regularnych 174Dopasowywanie wzorców 174Zbiory znaków 175Powtarzanie części wzorca 176Grupowanie podwyrażeń 177Dopasowania i grupy 178Typ Date 179Granice słów i łańcuchów 180Wzorce wyboru 181Zasady dopasowywania 181Wycofywanie 182Metoda replace 184Zachłanność 185Dynamiczne tworzenie obiektów RegExp 186Metoda search 187Własność lastIndex 188Przeglądanie dopasowanych elementów za pomocą pętli 189Przetwarzanie plików INI 190Znaki międzynarodowe 192Podsumowanie 193Ćwiczenia 194Wyrażeniowy golf 194Apostrofy 195Jeszcze raz liczby 19510. Moduły 197Moduły jako elementy składowe 198Pakiety 198Improwizacja zamiast modułów 200Wykonywanie danych jako kodu 200CommonJS 201Moduły ECMAScript 203Paczki 205Projektowanie modułów 205Podsumowanie 207Ćwiczenia 208Modularny robot 208Moduł Roads 208Zależności cykliczne 20811. Programowanie asynchroniczne 211Asynchroniczność 212Wronia technologia 213Wywołania zwrotne 214Obietnice 216Błędy 217Sieci są problematyczne 219Kolekcje obietnic 221Zalewanie sieci 222Rozsyłanie komunikatów 223Funkcje asynchroniczne 225Generatory 227Pętla zdarzeń 228Błędy asynchroniczne 229Podsumowanie 231Ćwiczenia 231Śledzenie skalpela 231Budowa metody Promise.all 23112. Projekt – język programowania 235Analiza składni 235Ewaluator 239Specjalne konstrukcje 241Środowisko 242Funkcja 244Kompilacja 245Ściąganie 246Ćwiczenia 247Tablice 247Zamknięcie 247Komentarze 247Naprawienie zakresu 247CZĘŚĆ II. PRZEGLĄDARKI INTERNETOWE13. JavaScript i przeglądarki internetowe 251Sieci i internet 252Sieć ogólnoświatowa 253HTML 254HTML i JavaScript 256Piaskownica 257Zgodność i wojny przeglądarkowe 25814. Obiektowy model dokumentu 261Struktura dokumentu 261Drzewa 263Standard 264Poruszanie się po drzewie 264Znajdowanie elementów 266Modyfikowanie dokumentu 267Tworzenie węzłów 267Atrybuty 269Rozmieszczenie elementów na stronie 270Style 272Kaskadowe arkusze stylów 273Selektory 275Pozycjonowanie i animowanie 276Podsumowanie 278Ćwiczenia 278Budowa tabeli 278Elementy według nazwy znacznika 279Kapelusz kota 27915. Obsługa zdarzeń 281Procedury obsługi zdarzeń 281Zdarzenia i węzły DOM 282Obiekty zdarzeń 283Propagacja 284Działania domyślne 285Zdarzenia klawiszy 286Zdarzenia wskazujące 287Kliknięcia myszą 287Ruch myszy 288Zdarzenia dotyku 290Zdarzenia przewijania 291Zdarzenia aktywacji 292Zdarzenie load 293Zdarzenia i pętla zdarzeń 294Zegary 295Eliminowanie skutków zbyt częstego wyzwalania zdarzeń 295Podsumowanie 297Ćwiczenia 297Balon 297Trop myszy 297Karty 29816. Projekt – gra platformowa 301Gra 302Technologia 302Poziomy 303Wczytywanie poziomu 304Aktorzy 305Hermetyzacja jako obciążenie 308Rysowanie 309Ruch i kolizje 314Aktualizacja aktorów 317Śledzenie klawiszy 319Uruchamianie gry 319Ćwiczenia 321Koniec gry 321Wstrzymywanie gry 322Potwór 32217. Rysowanie na kanwie 325SVG 326Kanwa 327Linie i powierzchnie 328Ścieżki 329Krzywe 330Rysowanie wykresu kołowego 332Tekst 334Obrazy 334Przekształcenia 336Zapisywanie i kasowanie przekształceń 338Powrót do gry 340Wybór interfejsu graficznego 345Podsumowanie 345Ćwiczenia 346Kształty 346Wykres kołowy 347Odbijająca się piłka 347Obliczenia na zapas 34718. HTTP i formularze 349Protokół 349Przeglądarki i HTTP 351Interfejs fetch 353Piaskownica dla HTTP 354Docenianie HTTP 355Bezpieczeństwo i HTTPS 356Pola formularza 356Aktywacja 358Wyłączanie pól 359Formularz jako całość 360Pola tekstowe 361Pola wyboru i przyciski radiowe 362Pola opcji do wyboru 363Pola plikowe 364Zapisywanie danych u klienta 366Podsumowanie 368Ćwiczenia 369Negocjacja treści 369Pracownia JavaScript 369Gra w życie Conwaya 37019. Projekt – edytor obrazków pikselowych 373Składniki 374Stan 375Budowa struktury DOM 377Kanwa 378Aplikacja 380Narzędzia do rysowania 382Zapisywanie i ładowanie 384Historia 387Narysujmy coś 389Dlaczego to jest takie trudne? 390Ćwiczenia 390Powiązania z klawiaturą 390Efektywne rysowanie 391Koła 391Właściwe linie 391CZĘŚĆ III. WIĘCEJ NIŻ JAVASCRIPT20. Node.js 395Podstawy 396Polecenie node 396Moduły 397Instalowanie modułów z repozytorium NPM 398Pliki pakietów 399Wersje 400Moduł systemu plików 400Moduł HTTP 402Strumienie 404Serwer plików 405Podsumowanie 410Ćwiczenia 411Narzędzie wyszukiwania 411Tworzenie katalogów 411Publiczna przestrzeń w internecie 41121. Projekt – serwis dla pasjonatów 415Projekt 416Długie sondowanie 417Interfejs HTTP 417Serwer 420Trasowanie 420Obsługa plików 421Przemowy jako zasoby 422Długie sondowanie 424Klient 426HTML 426Akcje 427Renderowanie komponentów 428Sondowanie 430Aplikacja 431Ćwiczenia 432Zapisywanie danych na dysku 432Resetowanie pól komentarzy 43322. Wydajność JavaScriptu 435Kompilacja etapowa 436Układ grafowy 437Definiowanie grafu 438Rozkład ukierunkowany siłowo 439Unikanie pracy 441Profilowanie 443Rozwijanie funkcji 445Zmniejszanie ilości śmieci 446Usuwanie nieużytków 447Typy dynamiczne 448Podsumowanie 449Ćwiczenia 449Znajdowanie drogi 449Mierzenie czasu 450Optymalizacja 451Podpowiedzi do ćwiczeń 453Rozdział 2. Struktura programu 453Pętlowy trójkąt 453FizzBuzz 454Szachownica 454Rozdział 3. Funkcje 454Minimum 454Rekurencja 454Liczenie znaków 455Rozdział 4. Struktury danych – obiekty i tablice 455Suma przedziału liczb 455Odwracanie tablicy 455Lista 456Porównywanie głębokie 456Rozdział 5. Funkcje wyższego rzędu 457Wszystko 457Dominujący kierunek pisma 457Rozdział 6. Sekretne życie obiektów 458Typ wektorowy 458Grupy 458Grupy z możliwością iteracji 458Pożyczanie metody 458Rozdział 7. Projekt – robot 459Porównywanie robotów 459Efektywność robota 459Trwała grupa 459Rozdział 8. Błędy i obsługa błędów 460Spróbuj jeszcze raz 460Zamknięte pudełko 460Rozdział 9. Wyrażenia regularne 460Apostrofy 460Jeszcze raz liczby 460Rozdział 10. Moduły 461Modularny robot 461Moduł Roads 462Zależności cykliczne 462Rozdział 11. Programowanie asynchroniczne 463Śledzenie skalpela 463Budowa metody Promise.all 463Rozdział 12. Projekt – język programowania 464Tablice 464Zamknięcie 464Komentarze 464Naprawienie zakresu 464Rozdział 14. Obiektowy model dokumentu 465Budowa tabeli 465Elementy według nazwy znacznika 465Kapelusz kota 465Rozdział 15. Obsługa zdarzeń 466Balon 466Trop myszy 466Karty 466Rozdział 16. Projekt – gra platformowa 467Wstrzymywanie gry 467Potwór 467Rozdział 17. Rysowanie na kanwie 468Kształty 468Wykres kołowy 468Odbijająca się piłka 469Obliczenia na zapas 469Rozdział 18. HTTP i formularze 469Negocjacja treści 469Pracownia JavaScript 470Gra w życie Conwaya 470Rozdział 19. Edytor obrazków pikselowych 471Powiązania z klawiaturą 471Efektywne rysowanie 471Koła 471Właściwe linie 472Rozdział 20. Node.js 473Narzędzie wyszukiwania 473Tworzenie katalogów 473Publiczna przestrzeń w internecie 473Rozdział 21. Projekt – serwis dla pasjonatów 474Zapisywanie danych na dysku 474Resetowanie pól komentarzy 474Rozdział 22. Wydajność JavaScriptu 474Znajdowanie drogi 474Optymalizacja 475O autorze: Marijn Haverbeke – jest niemieckim niezależnym programistą i poliglotą. Napisał kilka książek o programowaniu. Uwielbia pisać kod w wielu różnych językach programowania. Obecnie analizuje i testuje systemy bazodanowe i interfejsy API, a także tworzy przeróżne aplikacje open source. Chętnie dzieli się swoją wiedzą.
Informatyka
wiadomosci wyborcza, najbrzydsze zwierzęta świata, zgorzelec plaza, hey joe, za kilka dolarów więcej, chorwacja waluta, ip box, nauczyciel praca, ptaki hitchcocka, zawrócony, urząd skarbowy w słupsku, korekta pitu 37, prawosławna wielkanoc, podwiązanie jajników, hospicjum zielona góra, zofia merle, lichota, cmentarz centralny w szczecinie
yyyyy