Zrozumieć JavaScript. Wprowadzenie do programowania. Wydanie III - ebook
Zrozumieć JavaScript. Wprowadzenie do programowania. Wydanie III - ebook
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 danymi
- zasady programowania obiektowego i funkcyjnego
- tworzenie skryptów do wykonywania w przeglądarkach
- podstawy projektowania aplikacji sieciowych
- model DOM i jego zastosowanie
- korzystanie z Node.js
JavaScript: oto język Internetu!
Spis treści
Wprowadzenie 19
CZĘŚĆ I. JĘZYK
1. Wartości, typy i operatory 31
- Wartości 32
- Liczby 32
- Arytmetyka 33
- Liczby specjalne 34
- Łańcuchy 35
- Operatory jednoargumentowe 36
- Wartości logiczne 37
- Porównywanie 37
- Operatory logiczne 38
- Wartości puste 39
- Automatyczna konwersja typów 40
- Skrócona metoda wyznaczania wartości wyrażeń logicznych 41
- Podsumowanie 42
2. Struktura programu 45
- Wyrażenia i instrukcje 45
- Wiązania 46
- Nazwy wiązań 48
- Środowisko 49
- Funkcje 49
- Funkcja console.log 50
- Wartości zwrotne 50
- Sterowanie sposobem wykonywania programu 51
- Wykonywanie warunkowe 51
- Pętle while i do 53
- Stosowanie wcięć w kodzie 55
- Pętle for 56
- Wychodzenie z pętli 56
- Zwięzłe modyfikowanie wiązań 57
- Rozdzielanie zadań przy użyciu instrukcji switch 58
- Stosowanie wielkich liter 59
- Komentarze 59
- Podsumowanie 60
- Ćwiczenia 60
- Pętlowy trójkąt 61
- FizzBuzz 61
- Szachownica 61
3. Funkcje 65
- Definiowanie funkcji 65
- Wiązania i zakresy 67
- Zagnieżdżone zakresy dostępności 68
- Funkcje jako wartości 68
- Sposób deklarowania funkcji 69
- Funkcje strzałkowe 69
- Stos wywołań 70
- Argumenty opcjonalne 72
- Zamknięcia 73
- Rekurencja 74
- Hodowanie funkcji 77
- Funkcje i skutki uboczne 79
- Podsumowanie 80
- Ćwiczenia 81
- Minimum 81
- Rekurencja 81
- Liczenie znaków 81
4. Struktury danych - obiekty i tablice 83
- Wiewiórkołak 84
- Zbiory danych 84
- Własności 85
- Metody 86
- Obiekty 87
- Zmienność 89
- Dziennik wiewiórkołaka 90
- Obliczanie korelacji 92
- Pętle tablicowe 94
- Ostateczna analiza 94
- Dalsza tablicologia 96
- Łańcuchy i ich własności 97
- Parametry resztowe 99
- Obiekt Math 100
- Destrukturyzacja 102
- JSON 103
- Podsumowanie 104
- Ćwiczenia 104
- Suma przedziału liczb 104
- Odwracanie tablicy 104
- Lista 105
- Porównywanie głębokie 106
5. Funkcje wyższego rzędu 109
- Abstrakcja 110
- Abstrakcja powtarzalnych operacji 111
- Funkcje wyższego rzędu 112
- Zbiór danych na temat alfabetów 113
- Filtrowanie tablicy 114
- Przekształcanie tablic za pomocą metody map 115
- Podsumowywanie przy użyciu metody reduce 115
- Składalność 117
- Łańcuchy i kody znaków 118
- Rozpoznawanie tekstu 120
- Podsumowanie 121
- Ćwiczenia 122
- Spłaszczanie 122
- Własna pętla 122
- Wszystko 122
- Dominujący kierunek pisma 122
6. Sekretne życie obiektów 125
- Hermetyzacja 125
- Metody 126
- Prototypy 127
- Klasy 129
- Notacja klasowa 130
- Przesłanianie dziedziczonych własności 131
- Mapy 132
- Polimorfizm 134
- Symbole 135
- Interfejs Iterator 136
- Metody pobierające i ustawiające oraz własności statyczne 138
- Dziedziczenie 139
- Operator instanceof 141
- Podsumowanie 141
- Ćwiczenia 142
- Typ wektorowy 142
- Grupy 142
- Grupy umożliwiające iterację 143
- Pożyczanie metody 143
7. Projekt - robot 145
- Meadowfield 145
- Zadanie 147
- Zapisywanie danych 148
- Symulacja 149
- Trasa dla samochodu dostawczego 151
- Szukanie drogi 152
- Ćwiczenia 154
- Porównywanie robotów 154
- Efektywność robota 154
- Trwała grupa 154
8. Błędy i obsługa błędów 157
- Język 157
- Tryb ścisły 158
- Typy 159
- Testowanie 160
- Debugowanie 161
- Propagacja błędów 163
- Wyjątki 164
- Sprzątanie po wyjątkach 165
- Selektywne przechwytywanie wyjątków 167
- Asercje 169
- Podsumowanie 170
- Ćwiczenia 170
- Spróbuj jeszcze raz 170
- Zamknięte pudełko 170
9. Wyrażenia regularne 173
- Tworzenie wyrażeń regularnych 174
- Dopasowywanie wzorców 174
- Zbiory znaków 175
- Powtarzanie części wzorca 176
- Grupowanie podwyrażeń 177
- Dopasowania i grupy 178
- Typ Date 179
- Granice słów i łańcuchów 180
- Wzorce wyboru 181
- Zasady dopasowywania 181
- Wycofywanie 182
- Metoda replace 184
- Zachłanność 185
- Dynamiczne tworzenie obiektów RegExp 186
- Metoda search 187
- Własność lastIndex 188
- Przeglądanie dopasowanych elementów za pomocą pętli 189
- Przetwarzanie plików INI 190
- Znaki międzynarodowe 192
- Podsumowanie 193
- Ćwiczenia 194
- Wyrażeniowy golf 194
- Apostrofy 195
- Jeszcze raz liczby 195
10. Moduły 197
- Moduły jako elementy składowe 198
- Pakiety 198
- Improwizacja zamiast modułów 200
- Wykonywanie danych jako kodu 200
- CommonJS 201
- Moduły ECMAScript 203
- Paczki 205
- Projektowanie modułów 205
- Podsumowanie 207
- Ćwiczenia 208
- Modularny robot 208
- Moduł Roads 208
- Zależności cykliczne 208
11. Programowanie asynchroniczne 211
- Asynchroniczność 212
- Wronia technologia 213
- Wywołania zwrotne 214
- Obietnice 216
- Błędy 217
- Sieci są problematyczne 219
- Kolekcje obietnic 221
- Zalewanie sieci 222
- Rozsyłanie komunikatów 223
- Funkcje asynchroniczne 225
- Generatory 227
- Pętla zdarzeń 228
- Błędy asynchroniczne 229
- Podsumowanie 231
- Ćwiczenia 231
- Śledzenie skalpela 231
- Budowa metody Promise.all 231
12. Projekt - język programowania 235
- Analiza składni 235
- Ewaluator 239
- Specjalne konstrukcje 241
- Środowisko 242
- Funkcja 244
- Kompilacja 245
- Ściąganie 246
- Ćwiczenia 247
- Tablice 247
- Zamknięcie 247
- Komentarze 247
- Naprawienie zakresu 247
CZĘŚĆ II. PRZEGLĄDARKI INTERNETOWE
13. JavaScript i przeglądarki internetowe 251
- Sieci i internet 252
- Sieć ogólnoświatowa 253
- HTML 254
- HTML i JavaScript 256
- Piaskownica 257
- Zgodność i wojny przeglądarkowe 258
14. Obiektowy model dokumentu 261
- Struktura dokumentu 261
- Drzewa 263
- Standard 264
- Poruszanie się po drzewie 264
- Znajdowanie elementów 266
- Modyfikowanie dokumentu 267
- Tworzenie węzłów 267
- Atrybuty 269
- Rozmieszczenie elementów na stronie 270
- Style 272
- Kaskadowe arkusze stylów 273
- Selektory 275
- Pozycjonowanie i animowanie 276
- Podsumowanie 278
- Ćwiczenia 278
- Budowa tabeli 278
- Elementy według nazwy znacznika 279
- Kapelusz kota 279
15. Obsługa zdarzeń 281
- Procedury obsługi zdarzeń 281
- Zdarzenia i węzły DOM 282
- Obiekty zdarzeń 283
- Propagacja 284
- Działania domyślne 285
- Zdarzenia klawiszy 286
- Zdarzenia wskazujące 287
- Kliknięcia myszą 287
- Ruch myszy 288
- Zdarzenia dotyku 290
- Zdarzenia przewijania 291
- Zdarzenia aktywacji 292
- Zdarzenie load 293
- Zdarzenia i pętla zdarzeń 294
- Zegary 295
- Eliminowanie skutków zbyt częstego wyzwalania zdarzeń 295
- Podsumowanie 297
- Ćwiczenia 297
- Balon 297
- Trop myszy 297
- Karty 298
16. Projekt - gra platformowa 301
- Gra 302
- Technologia 302
- Poziomy 303
- Wczytywanie poziomu 304
- Aktorzy 305
- Hermetyzacja jako obciążenie 308
- Rysowanie 309
- Ruch i kolizje 314
- Aktualizacja aktorów 317
- Śledzenie klawiszy 319
- Uruchamianie gry 319
- Ćwiczenia 321
- Koniec gry 321
- Wstrzymywanie gry 322
- Potwór 322
17. Rysowanie na kanwie 325
- SVG 326
- Kanwa 327
- Linie i powierzchnie 328
- Ścieżki 329
- Krzywe 330
- Rysowanie wykresu kołowego 332
- Tekst 334
- Obrazy 334
- Przekształcenia 336
- Zapisywanie i kasowanie przekształceń 338
- Powrót do gry 340
- Wybór interfejsu graficznego 345
- Podsumowanie 345
- Ćwiczenia 346
- Kształty 346
- Wykres kołowy 347
- Odbijająca się piłka 347
- Obliczenia na zapas 347
18. HTTP i formularze 349
- Protokół 349
- Przeglądarki i HTTP 351
- Interfejs fetch 353
- Piaskownica dla HTTP 354
- Docenianie HTTP 355
- Bezpieczeństwo i HTTPS 356
- Pola formularza 356
- Aktywacja 358
- Wyłączanie pól 359
- Formularz jako całość 360
- Pola tekstowe 361
- Pola wyboru i przyciski radiowe 362
- Pola opcji do wyboru 363
- Pola plikowe 364
- Zapisywanie danych u klienta 366
- Podsumowanie 368
- Ćwiczenia 369
- Negocjacja treści 369
- Pracownia JavaScript 369
- Gra w życie Conwaya 370
19. Projekt - edytor obrazków pikselowych 373
- Składniki 374
- Stan 375
- Budowa struktury DOM 377
- Kanwa 378
- Aplikacja 380
- Narzędzia do rysowania 382
- Zapisywanie i ładowanie 384
- Historia 387
- Narysujmy coś 389
- Dlaczego to jest takie trudne? 390
- Ćwiczenia 390
- Powiązania z klawiaturą 390
- Efektywne rysowanie 391
- Koła 391
- Właściwe linie 391
CZĘŚĆ III. WIĘCEJ NIŻ JAVASCRIPT
20. Node.js 395
- Podstawy 396
- Polecenie node 396
- Moduły 397
- Instalowanie modułów z repozytorium NPM 398
- Pliki pakietów 399
- Wersje 400
- Moduł systemu plików 400
- Moduł HTTP 402
- Strumienie 404
- Serwer plików 405
- Podsumowanie 410
- Ćwiczenia 411
- Narzędzie wyszukiwania 411
- Tworzenie katalogów 411
- Publiczna przestrzeń w internecie 411
21. Projekt - serwis dla pasjonatów 415
- Projekt 416
- Długie sondowanie 417
- Interfejs HTTP 417
- Serwer 420
- Trasowanie 420
- Obsługa plików 421
- Przemowy jako zasoby 422
- Długie sondowanie 424
- Klient 426
- HTML 426
- Akcje 427
- Renderowanie komponentów 428
- Sondowanie 430
- Aplikacja 431
- Ćwiczenia 432
- Zapisywanie danych na dysku 432
- Resetowanie pól komentarzy 433
22. Wydajność JavaScriptu 435
- Kompilacja etapowa 436
- Układ grafowy 437
- Definiowanie grafu 438
- Rozkład ukierunkowany siłowo 439
- Unikanie pracy 441
- Profilowanie 443
- Rozwijanie funkcji 445
- Zmniejszanie ilości śmieci 446
- Usuwanie nieużytków 447
- Typy dynamiczne 448
- Podsumowanie 449
- Ćwiczenia 449
- Znajdowanie drogi 449
- Mierzenie czasu 450
- Optymalizacja 451
Podpowiedzi do ćwiczeń 453
- Rozdział 2. Struktura programu 453
- Pętlowy trójkąt 453
- FizzBuzz 454
- Szachownica 454
- Rozdział 3. Funkcje 454
- Minimum 454
- Rekurencja 454
- Liczenie znaków 455
- Rozdział 4. Struktury danych - obiekty i tablice 455
- Suma przedziału liczb 455
- Odwracanie tablicy 455
- Lista 456
- Porównywanie głębokie 456
- Rozdział 5. Funkcje wyższego rzędu 457
- Wszystko 457
- Dominujący kierunek pisma 457
- Rozdział 6. Sekretne życie obiektów 458
- Typ wektorowy 458
- Grupy 458
- Grupy z możliwością iteracji 458
- Pożyczanie metody 458
- Rozdział 7. Projekt - robot 459
- Porównywanie robotów 459
- Efektywność robota 459
- Trwała grupa 459
- Rozdział 8. Błędy i obsługa błędów 460
- Spróbuj jeszcze raz 460
- Zamknięte pudełko 460
- Rozdział 9. Wyrażenia regularne 460
- Apostrofy 460
- Jeszcze raz liczby 460
- Rozdział 10. Moduły 461
- Modularny robot 461
- Moduł Roads 462
- Zależności cykliczne 462
- Rozdział 11. Programowanie asynchroniczne 463
- Śledzenie skalpela 463
- Budowa metody Promise.all 463
- Rozdział 12. Projekt - język programowania 464
- Tablice 464
- Zamknięcie 464
- Komentarze 464
- Naprawienie zakresu 464
- Rozdział 14. Obiektowy model dokumentu 465
- Budowa tabeli 465
- Elementy według nazwy znacznika 465
- Kapelusz kota 465
- Rozdział 15. Obsługa zdarzeń 466
- Balon 466
- Trop myszy 466
- Karty 466
- Rozdział 16. Projekt - gra platformowa 467
- Wstrzymywanie gry 467
- Potwór 467
- Rozdział 17. Rysowanie na kanwie 468
- Kształty 468
- Wykres kołowy 468
- Odbijająca się piłka 469
- Obliczenia na zapas 469
- Rozdział 18. HTTP i formularze 469
- Negocjacja treści 469
- Pracownia JavaScript 470
- Gra w życie Conwaya 470
- Rozdział 19. Edytor obrazków pikselowych 471
- Powiązania z klawiaturą 471
- Efektywne rysowanie 471
- Koła 471
- Właściwe linie 472
- Rozdział 20. Node.js 473
- Narzędzie wyszukiwania 473
- Tworzenie katalogów 473
- Publiczna przestrzeń w internecie 473
- Rozdział 21. Projekt - serwis dla pasjonatów 474
- Zapisywanie danych na dysku 474
- Resetowanie pól komentarzy 474
- Rozdział 22. Wydajność JavaScriptu 474
- Znajdowanie drogi 474
- Optymalizacja 475
Kategoria: | Webmaster |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-6363-2 |
Rozmiar pliku: | 4,8 MB |