JavaScript
Przewodnik
Poznaj
język mistrzów programowania
JavaScript
jest wykorzystywanym w wielu celach uniwersalnym językiem
ogólnego przeznaczenia - wysokopoziomowym, dynamicznym,
przygotowanym do kodowania obiektowego i funkcjonalnego. Zasadniczo
służy do programowania sieci WWW: kod JavaScript występuje w
zdecydowanej większości stron internetowych. To jednak tylko jedno z
możliwych zastosowań tego języka. Wszystko to sprawia, że JavaScript
jest najbardziej rozpowszechnionym językiem w historii programowania.
Pojawienie się platformy Node.js spowodowało, że stał się
wszechstronniejszy, a jego popularność wśród
programistów jeszcze wzrosła.
To kolejne wydanie
wyczerpującego, kompleksowego przewodnika po języku JavaScript oraz
jego najważniejszych klienckich i serwerowych interfejsach API.
Książka
jest przeznaczona dla programistów, którzy chcą
nauczyć się JavaScriptu lub udoskonalić swoje umiejętności tworzenia
kodu. Ujęto w niej wersję ES2020 tego języka. Poza praktycznymi
wyjaśnieniami dotyczącymi jego struktur i ich stosowania znalazły się
tu liczne przykłady, wskazówki i porady. To wydanie zawiera
nowe rozdziały poświęcone klasom, modułom, iteratorom, generatorom,
promesom i instrukcjom async/await. W efekcie powstał całościowy obraz
ekosystemu JavaScript wraz z opisem jego zawiłości, potencjalnych
problemów i najlepszych metod radzenia sobie z nimi.
W książce między innymi:
- podstawy języka i jego
podstawowe elementy
- struktury danych,
wyrażenia regularne, format JSON
- standardowa biblioteka
JavaScript
- przetwarzanie
dokumentów i grafiki
- obsługa sieci, pamięci i
wątków
- środowisko Node oraz
profesjonalne narzędzia i rozszerzenia języka
Wstęp
13
1.
Wprowadzenie
do języka JavaScript 15
1.1. Poznawanie JavaScriptu 17
1.2. Witaj, świecie! 18
1.3. Wycieczka po języku JavaScript 18
1.4. Przykład: histogram częstości użycia znaków 24
1.5. Podsumowanie 26
2.
Struktura leksykalna 27
2.1. Tekst programu 27
2.2. Komentarze 27
2.3. Literały 28
2.4. Identyfikatory i zarezerwowane słowa 28
2.5. Unicode 29
2.6. Opcjonalne średniki 30
2.7. Podsumowanie 32
3.
Typy, wartości i zmienne 33
3.1. Informacje ogólne i definicje 33
3.2. Liczby 35
3.3. Tekst 41
3.4. Wartości logiczne 47
3.5. Wartości null i undefined 48
3.6. Symbole 49
3.7. Obiekt globalny 50
3.8. Niemutowalne prymitywne wartości i mutowalne odwołania do obiektu
51
3.9. Konwersje typów 52
3.10. Deklarowanie zmiennych i przypisywanie wartości 59
3.11. Podsumowanie 66
4.
Wyrażenia
i operatory 67
4.1. Wyrażenia podstawowe 67
4.2. Inicjatory obiektów i tablic 68
4.3. Wyrażenia definiujące funkcje 69
4.4. Wyrażenia dostępu do właściwości 69
4.5. Wyrażenia wywołujące 71
4.6. Wyrażenia tworzące obiekty 73
4.7. Przegląd operatorów 74
4.8. Operatory arytmetyczne 78
4.9. Wyrażenia relacyjne 83
4.10. Wyrażenia logiczne 88
4.11. Wyrażenia przypisujące 90
4.12. Wyrażenia interpretujące 92
4.13. Inne operatory 94
4.14. Podsumowanie 99
5.
Instrukcje
101
5.1. Instrukcje wyrażeniowe 102
5.2. Instrukcje złożone i puste 102
5.3. Instrukcje warunkowe 103
5.4. Pętle 108
5.5. Skoki 114
5.6. Inne instrukcje 121
5.7. Deklaracje 124
5.8. Podsumowanie instrukcji 126
6.
Obiekty
129
6.1. Wprowadzenie do obiektów 129
6.2. Tworzenie obiektów 130
6.3. Odpytywanie i ustawianie właściwości 132
6.4. Usuwanie właściwości 137
6.5. Sprawdzanie właściwości 138
6.6. Wyliczanie właściwości 139
6.7. Rozszerzanie obiektów 140
6.8. Serializacja obiektów 142
6.9. Metody obiektów 142
6.10. Udoskonalona składnia literału obiektowego 144
6.11. Podsumowanie 150
7.
Tablice 151
7.1. Tworzenie tablic 152
7.2. Odczytywanie i zapisywanie elementów tablicy 154
7.3. Rozrzedzone tablice 155
7.4. Długość tablicy 156
7.5. Dodawanie i usuwanie elementów tablicy 156
7.6. Iterowanie tablic 157
7.7. Tablice wielowymiarowe 159
7.8. Metody tablicowe 159
7.9. Obiekty podobne do tablic 170
7.10. Ciągi znaków jako tablice 172
7.11. Podsumowanie 172
8.
Funkcje 175
8.1. Definiowanie funkcji 175
8.2. Wywoływanie funkcji 179
8.3. Argumenty i parametry funkcji 185
8.4. Funkcje jako wartości 192
8.5. Funkcje jako przestrzenie nazw 194
8.6. Domknięcia 195
8.7. Właściwości, metody i konstruktory funkcji 199
8.8. Programowanie funkcyjne 203
8.9. Podsumowanie 208
9.
Klasy 209
9.1. Klasy i prototypy 210
9.2. Klasy i konstruktory 211
9.3. Słowo kluczowe class 215
9.4. Dodawanie metod do istniejących klas 222
9.5. Podklasy 222
9.6. Podsumowanie 232
10.
Moduły 235
10.1. Tworzenie modułów za pomocą klas, obiektów
i domknięć 235
10.2. Moduły w środowisku Node 238
10.3. Moduły w języku ES6 240
10.4. Podsumowanie 249
11.
Standardowa biblioteka JavaScript 251
11.1. Zbiory i mapy 252
11.2. Typowane tablice i dane binarne 257
11.3. Wyszukiwanie wzorców i wyrażenia regularne 263
11.4. Daty i czas 280
11.5. Klasy błędów 284
11.6. Format JSON, serializacja i analiza składni 285
11.7. Internacjonalizacja aplikacji 288
11.8. Interfejs API konsoli 294
11.9. Interfejs API klasy URL 297
11.10. Czasomierze 300
11.11. Podsumowanie 301
12.
Iteratory i generatory 303
12.1. Jak działają iteratory? 304
12.2. Implementowanie obiektów iterowalnych 304
12.3. Generatory 307
12.4. Zaawansowane funkcjonalności generatorów 311
12.5. Podsumowanie 314
13.
Asynchroniczność
w języku JavaScript 315
13.1. Programowanie asynchroniczne i funkcje zwrotne 315
13.2. Promesy 319
13.3. Słowa kluczowe async i await 338
13.4. Iteracje asynchroniczne 341
13.5. Podsumowanie 346
14.
Metaprogramowanie
349
14.1. Atrybuty właściwości 349
14.2. Rozszerzalność obiektów 353
14.3. Atrybut prototype 354
14.4. Popularne symbole 356
14.5. Znaczniki szablonowe 363
14.6. Obiekt Reflect 365
14.7. Klasa Proxy 367
14.8. Podsumowanie 373
15.
JavaScript w przeglądarkach
375
15.1. Podstawy programowania stron WWW 377
15.2. Zdarzenia 390
15.3. Przetwarzanie dokumentów 399
15.4. Przetwarzanie arkusza stylów 413
15.5. Geometria i przewijanie dokumentu 419
15.6. Komponenty WWW 423
15.7. SVG: skalowalna grafika wektorowa 434
15.8. Grafika w znaczniku
15.9. Klasa Audio 460
15.10. Lokalizacja, nawigacja i historia 462
15.11. Sieć 470
15.12. Magazynowanie danych 485
15.13. Wątki robocze i komunikaty 496
15.14. Przykład: zbiór Mandelbrota 503
15.15. Podsumowanie i dalsza lektura 514
16.
Serwery
w środowisku Node 521
16.1. Podstawy programowania w środowisku Node 522
16.2. Domyślna asynchroniczność 526
16.3. Bufory 529
16.4. Zdarzenia i klasa EventEmitter 531
16.5. Strumienie 533
16.6. Procesy, procesory i szczegóły systemu operacyjnego 543
16.7. Operacje na plikach 544
16.8. Klienty i serwery HTTP 554
16.9. Klienty i serwery inne niż HTTP 558
16.10. Procesy potomne 560
16.11. Wątki robocze 565
16.12. Podsumowanie 573
17.
Narzędzia
i rozszerzenia 575
17.1. Inspekcja kodu za pomocą narzędzia ESLint 575
17.2. Formatowanie kodu za pomocą narzędzia Prettier 576
17.3. Tworzenie testów jednostkowych za pomocą narzędzia
Jest 577
17.4. Zarządzanie pakietami za pomocą narzędzia npm 580
17.5. Pakowanie kodu 581
17.6. Transpilacja kodu za pomocą narzędzia Babel 583
17.7. Rozszerzenie JSX: znaczniki w kodzie JavaScript 584
17.8. Sprawdzanie typów danych za pomocą rozszerzenia Flow
588
17.9. Podsumowanie 602
608
stron, Format: 17.0x24.5cm, oprawa twarda