Zaawansowane techniki języka JavaScript
JavaScript stanowi doskonałe, zaawansowane narzędzie do programowania aplikacji
internetowych. Zawodowe wykorzystanie tego języka wymaga jednak opanowania trudniejszych
zagadnień, takich jak obiektowy model dokumentu (DOM) czy korzystanie z nowych narzędzi
obiektowych w JS. Trzeba też nauczyć się testować aplikację i usuwać błędy.
Dopiero wiedza na tym poziomie pozwoli zasłużyć na miano profesjonalisty.
Niniejsza książka stanowi kompendium wiedzy o nowoczesnym języku JavaScript.
Zawiera zwięzłe, praktyczne informacje, których każdy doskonały programista
będzie potrzebował do pisania aplikacji internetowych. Autorzy skoncentrowali się na
zasadniczych tematach i przedstawili wszystkie istotne kwestie dotyczące zaawansowanych
technik programowania w tym języku. Opisali również praktyczne sposoby wykorzystania
tych technik, wskazując przy tym sposoby uniknięcia potencjalnych problemów.
Dzięki tej książce:
poznasz najważniejsze profesjonalne techniki programowania w JavaScripcie
zrozumiesz działanie funkcji i zapoznasz się z narzędziami obiektowymi tego
języka
dokładnie zgłębisz kwestie związane z modelem DOM i nauczysz się go
wykorzystywać
zapoznasz się z zasadami obsługi zdarzeń w JavaScripcie
nauczysz się tworzyć kod wielokrotnego użytku z wykorzystaniem obiektowego
JavaScriptu
zaczniesz wykorzystywać JavaScript do walidacji formularzy HTML oraz CSS
opanujesz techniki, które wkrótce zdecydują o przyszłości JavaScriptu
O autorach (11)
O recenzentach technicznych (13)
Podziękowania (15)
Rozdział 1. Profesjonalne techniki w JavaScript (17)
- Jak tu dotarliśmy? (18)
- Współczesny JavaScript (19)
- Rozkwit bibliotek (20)
- Więcej niż wzmianka o rozwiązaniach mobilnych (21)
- Dokąd zmierzamy? (22)
- Co nas czeka wkrótce? (22)
- Podsumowanie (23)
Rozdział 2. Funkcje, cechy i obiekty (25)
- Cechy języka (25)
- Referencje oraz wartości (25)
- Zakres (27)
- Kontekst (29)
- Domknięcia (30)
- Przeciążenie funkcji oraz sprawdzanie typów (33)
- Nowe narzędzia obiektowe (35)
- Obiekty (35)
- Modyfikacja obiektów (36)
- Podsumowanie (38)
Rozdział 3. Tworzenie kodu do wielokrotnego użytku (39)
- Obiektowy JavaScript (39)
- Dziedziczenie (43)
- Widoczność składowych obiektu (47)
- Przyszłość obiektowego JavaScript (49)
- Opakowanie kodu w JavaScript (49)
- Przestrzenie nazw (49)
- Wzorzec modułowy (50)
- Wyrażenia funkcyjne wywoływane natychmiast (51)
- Podsumowanie (54)
Rozdział 4. Usuwanie błędów z kodu JavaScript (55)
- Narzędzia testujące (55)
- Konsola (56)
- Wykorzystanie funkcji konsoli (58)
- Debugger (60)
- Inspektor DOM (60)
- Analizator sieci (60)
- Oś czasu (61)
- Profiler (62)
- Podsumowanie (63)
Rozdział 5. Obiektowy model dokumentu (65)
- Wprowadzenie do obiektowego modelu dokumentu (65)
- Struktura DOM (67)
- Relacje w modelu DOM (68)
- Dostęp do elementów DOM (70)
- Odnajdywanie elementów za pomocą selektora CSS (72)
- Oczekiwanie na wczytanie modelu DOM strony HTML (73)
- Oczekiwanie na wczytanie strony (73)
- Oczekiwanie na właściwe zdarzenie (74)
- Pobieranie zawartości Elementu (74)
- Pobieranie tekstu Elementu (74)
- Pobieranie kodu HTML elementu (76)
- Praca z atrybutami elementu (77)
- Pobieranie i ustawianie wartości atrybutu (77)
- Modyfikacja modelu DOM (80)
- Tworzenie węzłów za pomocą DOM (80)
- Wstawianie do drzewa DOM (81)
- Wstawianie HTML do drzewa DOM (82)
- Usuwanie węzłów z drzewa DOM (83)
- Obsługa znaków niewidocznych w DOM (84)
- Proste przeglądanie drzewa DOM (85)
- Podsumowanie (87)
Rozdział 6. Zdarzenia (89)
- Wprowadzenie do zdarzeń JavaScript (89)
- Stos, kolejka oraz pętla zdarzeń (90)
- Fazy zdarzeń (90)
- Podłączanie procedur nasłuchu zdarzeń (92)
- Dowiązywanie tradycyjne (92)
- Dowiązywanie DOM: rekomendacja W3C (96)
- Odwiązywanie zdarzeń (97)
- Wspólne cechy zdarzeń (98)
- Obiekt zdarzenia (98)
- Wyłączenie bąbelkowania zdarzeń (98)
- Zmiana domyślnych akcji przeglądarki (99)
- Delegacja zdarzeń (101)
- Obiekt zdarzenia (102)
- Właściwości ogólne (102)
- Właściwości związane z myszką (103)
- Właściwości związane z klawiaturą (104)
- Rodzaje zdarzeń (105)
- Zdarzenia związane ze stroną (106)
- Zdarzenia interfejsu użytkownika (107)
- Zdarzenia myszy (107)
- Zdarzenia klawiatury (109)
- Zdarzenia formularzy (109)
- Dostępność zdarzeń (110)
- Podsumowanie (110)
Rozdział 7. JavaScript a walidacja formularzy (111)
- Walidacja formularzy w HTML oraz CSS (111)
- Walidacja formularzy za pomocą JavaScript (114)
- Walidacja a użytkownicy (117)
- Zdarzenia walidacji (118)
- Dostosowywanie walidacji (120)
- Zapobieganie walidacji formularzy (120)
- Podsumowanie (121)
Rozdział 8. Wprowadzenie do Ajaksa (123)
- Używanie Ajaksa (124)
- Żądania HTTP (124)
- Odpowiedź HTTP (129)
- Podsumowanie (131)
Rozdział 9. Narzędzia do tworzenia aplikacji internetowych (133)
- Tworzenie rusztowania projektu (134)
- NPM jest podstawą wszystkich narzędzi (134)
- Generatory (134)
- Kontrola wersji (135)
- Dodawanie plików, ich modyfikacje oraz pierwsze zatwierdzenie zmian (136)
- Podsumowanie (139)
Rozdział 10. AngularJS oraz testowanie (141)
- Widoki oraz kontrolery (143)
- Zdalne źródła danych (145)
- Trasy (146)
- Parametry tras (148)
- Testowanie aplikacji (149)
- Testy jednostkowe (150)
- Dodawanie nowych testów (151)
- Testowanie żądań HTTP za pomocą $httpBackend (152)
- Testowanie integracyjne z Protractorem (153)
- Podsumowanie (156)
Rozdział 11. Przyszłość JavaScript (157)
- Teraźniejszość i przyszłość ECMAScript (158)
- Użycie ECMAScript Harmony (158)
- Zasoby Harmony (159)
- Używanie Harmony (159)
- Funkcje języka ECMAScript Harmony (163)
- Funkcje strzałkowe (164)
- Klasy (166)
- Obietnice (166)
- Moduły (168)
- Rozszerzenia typów (170)
- Nowe typy kolekcji (173)
- Podsumowanie (175)
Dodatek A. Dokumentacja DOM (177)
- Zasoby (177)
- Terminologia (177)
- Zmienne globalne (179)
- document (179)
- HTMLElement (179)
- Nawigacja DOM (180)
- body (180)
- childNodes (180)
- documentElement (181)
- firstChild (181)
- getElementById( elementID ) (181)
- getElementsByTagName( nazwaZnacznika ) (181)
- lastChild (182)
- nextSibling (182)
- parentNode (183)
- previousSibling (183)
- Informacje o węźle (183)
- innerText (183)
- nodeName (184)
- nodeType (184)
- nodeValue (185)
- Attributes (185)
- className (185)
- getAttribute( nazwaAtrybutu ) (186)
- removeAttribute( nazwaAtrybutu ) (186)
- setAttribute( nazwaAtrybutu, wartośćAtrybutu ) (187)
- Modyfikacje modelu DOM (187)
- appendChild( węzełDoDodania ) (187)
- cloneNode( true|false ) (188)
- createElement( nazwaWęzła ) (188)
- createElementNS( przestrzeńNazw, nazwaZnacznika ) (188)
- createTextNode( łańcuchZnakowy ) (189)
- innerHTML (189)
- insertBefore( węzełDoWstawienia, węzełPrzedKtórymWstawić ) (190)
- removeChild( węzełDoUsunięcia ) (190)
- replaceChild( węzełDoWstawienia, węzełDoZastąpienia ) (190)
Skorowidz (193)
200 stron, Format: 16.7x23.8, oprawa miękka