E-book details

Head First JavaScript. Edycja polska

Head First JavaScript. Edycja polska

Michael Morrison

Ebook

Poznaj język JavaScript w niekonwencjonalny
i zadziwiająco skuteczny sposób!

Dziś statyczne witryny WWW giną w ogromnej masie podobnych sobie stron, przy braku zainteresowania współczesnych użytkowników sieci. Aby się wyróżnić, trzeba zaproponować oglądającym coś innego niż tylko ładnie sformatowany tekst i schludną grafikę. Jednym z pomysłów na zwiększenie atrakcyjności witryny WWW jest wprowadzenie na nią elementów interaktywnych. Istnieje wiele rozwiązań służących do tworzenia takich elementów. Jednym z najczęściej wykorzystywanych jest JavaScript. Ten interpretowany po stronie przeglądarki język pozwala między innymi na kontrolowanie niemal wszystkich elementów HTML w oparciu o obiektowy model dokumentu (DOM), obsługę zdarzeń generowanych przez użytkownika i weryfikację poprawności danych wprowadzanych do formularza.

Dzięki książce "Head First JavaScript. Edycja polska" poznasz JavaScript w nietypowy, a przy tym bardzo skuteczny sposób. Ponieważ została ona napisana w oparciu o najnowsze teorie uczenia się, błyskawicznie przyswoisz sobie wiedzę o tym języku. Nauczysz się osadzać kod JavaScript w dokumentach HTML, przetwarzać dane i sterować wykonywaniem skryptu za pomocą konstrukcji warunkowych. Dowiesz się, jak korzystać z obiektowego modelu dokumentu, tworzyć i obsługiwać pliki cookie oraz procedury obsługi zdarzeń. Poznasz także techniki programowania obiektowego i sposoby wykrywania czy usuwania błędów. Przeczytasz również o technologii AJAX, opierającej się na języku JavaScript.

  • Podstawowe elementy JavaScript
  • Praca ze zmiennymi
  • Interakcja z przeglądarką
  • Wyrażenia warunkowe i pętle
  • Organizacja kodu i korzystanie z funkcji
  • Obiektowy Model Dokumentu
  • Obiekty w JavaScript
  • Testowanie skryptów
  • Wykorzystanie JavaScript w technologii AJAX

Twój czas jest cenny -- wykorzystaj go na poznanie JavaScript z pomocą nowoczesnych metod nauki!

Wprowadzenie

  • Dla kogo jest ta książka? (20)
  • Wiemy, co sobie myślisz (21)
  • Metapoznanie (23)
  • Oto, co możesz zrobić, aby zmusić swój mózg do posłuszeństwa (25)
  • Przeczytaj to (26)
  • Zespół recenzentów (28)
  • Podziękowania (29)

Rozdział 1. W odpowiedzi na wirtualny świat

  • Użytkownicy (WWW) mają swoje potrzeby (32)
  • To jakby rozmowa ze ścianą - całkowity brak reakcji (33)
  • A JavaScript odpowiada (34)
  • Światła, kamera, interakcja! (36)
  • Użyj znacznika <script>, by dać przeglądarce znać, że piszesz kod JavaScript (41)
  • Twoja przeglądarka WWW poradzi sobie z kodem HTML, CSS i JavaScript (42)
  • Najlepszy wirtualny przyjaciel mężczyzny... potrzebuje TWOJEJ pomocy (45)
  • Zapewnianie interaktywności iGłazowi (46)
  • Utworzenie strony WWW iGłazu (47)
  • Test (47)
  • Zdarzenia JavaScript: udzielamy głosu iGłazowi (48)
  • Informowanie użytkownika przy wykorzystaniu funkcji (49)
  • Dodanie powitania (50)
  • A teraz zadbamy o to, by iGłaz stał się naprawdę interaktywny (52)
  • Interakcja jest komunikacją DWUstronną (53)
  • Dodajemy funkcję do pobrania imienia użytkownika (54)
  • Błyskawiczna powtórka: co się przed chwilą stało? (57)
  • Testujemy iGłaz w wersji 1.0 (58)

Rozdział 2. Wszystko ma swoje miejsce

  • Twoje skrypty mogą przechowywać dane (62)
  • Skrypty myślą w oparciu o typy danych (63)
  • Stałe zostają TAKIE SAME, wartości zmiennych mogą się ZMIENIAĆ (68)
  • Zmienne początkowo nie mają wartości (72)
  • Inicjalizacja zmiennej przy użyciu znaku = (73)
  • Stałe są odporne na zmiany (74)
  • A jak wyglądają nazwy? (78)
  • Dozwolone i niedozwolone nazwy zmiennych oraz stałych (79)
  • Nazwy zmiennych często są zapisywane według notacji CamelCase (80)
  • Planujemy stronę zamówienia dla Donalda (84)
  • Pierwsze podejście do obliczeń w formularzu zamówienia (86)
  • Inicjuj swoje dane albo... (89)
  • NaN NIE jest liczbą (90)
  • Nie tylko liczby można dodawać (92)
  • parseInt() oraz parseFloat() - konwersja łańcuchów znaków na liczby (93)
  • Dlaczego w zamówieniu pojawiają się dodatkowe pączki? (94)
  • Donald odkrywa "szpiegostwo ciastkarskie" (98)
  • Użyj metody getElementById(), by pobrać dane z formularza (99)
  • Weryfikacja danych w formularzu (100)
  • Staraj się, by interfejs użytkownika był intuicyjny (105)

Rozdział 3. W głąb przeglądarki

  • Klienty, serwery i JavaScript (112)
  • Co przeglądarka może zrobić dla Ciebie? (114)
  • iGłaz musi reagować bardziej wyraziście (116)
  • Liczniki czasu kojarzą akcje z upływającym czasem (118)
  • Przerywanie działania licznika (119)
  • Tworzenie licznika czasu przy użyciu funkcji setTimeout() (120)
  • W zbliżeniu - funkcja setTimeout() (121)
  • Wiele rozmiarów ekranu, wiele skarg (125)
  • Użyj obiektu document, by określić szerokość okna przeglądarki (126)
  • Skorzystaj z obiektu document, by odczytać szerokość okna klienta (127)
  • Określanie wymiarów obrazka iGłazu (128)
  • Wielkość iGłazu należy dostosować do strony (129)
  • W momencie zmiany wielkości okna zgłaszane jest zdarzenie onresize (133)
  • Zdarzenie onresize skaluje obrazek iGłazu (134)
  • Czy myśmy się już spotkali? Rozpoznawanie użytkownika (136)
  • Każdy skrypt ma swój cykl życiowy (137)
  • Ciasteczka mogą istnieć dłużej niż cykl życia skryptu (138)
  • Ciasteczka mają nazwę i przechowują wartość... poza tym mogą wygasnąć (143)
  • Twój kod JavaScript może istnieć POZA Twoją stroną WWW (145)
  • Przywitaj użytkownika ciasteczkiem (146)
  • Teraz funkcja greetUser bazuje na ciasteczkach (147)
  • Nie zapomnij o zapisaniu ciasteczka (148)
  • Ciasteczka mają wpływ na bezpieczeństwo przeglądarek (150)
  • Świat bez ciasteczek (152)
  • Porozmawiaj z użytkownikiem, to lepsze niż nic... (155)

Rozdział 4. Jeśli droga się rozwidla, nie wahaj się skręcić

  • Szczęśliwy uczestniku, prosimy na scenę! (160)
  • "Jeśli" to prawda, to coś zrób (162)
  • Instrukcja if przetwarza warunek, a następnie wykonuje operację (163)
  • Użyj instrukcji if, by wybrać jedną z dwóch opcji (165)
  • Instrukcja if pozwala wybierać spośród wielu opcji (166)
  • Dodawanie klauzuli else do instrukcji if (167)
  • Przebiegiem zdarzeń sterują zmienne (170)
  • Brakuje jednak części historii (171)
  • Składanie operacji w JavaScripcie (172)
  • Męczy Cię podejmowanie decyzji przy użyciu instrukcji if/else? (178)
  • Instrukcję if można umieścić wewnątrz innej instrukcji if (179)
  • Twoje funkcje kontrolują działanie stron (181)
  • Pseudokod pozwala naszkicować ogólny obraz przygody (182)
  • Nierówność kreskowego ludzika (186)
  • != Ech, nie mam ci nic do powiedzenia... (187)
  • Podejmowanie decyzji z wykorzystaniem operatorów porównania (188)
  • Komentarze, puste miejsca i dokumentacja (190)
  • Komentarze w JavaScripcie zaczynają się od znaków // (191)
  • Zakres i kontekst - gdzie "żyją" dane (193)
  • Sprawdź, gdzie są rozmieszczone zmienne w naszej przygodzie (194)
  • Gdzie żyją moje dane? (195)
  • Jedna z pięciu (198)
  • Zagnieżdżanie instrukcji if/else może się stać skomplikowane (199)
  • Instrukcje switch udostępniają wiele opcji (201)
  • Poznajemy szczegóły instrukcji switch (202)
  • Testowanie nowej wersji Przygody kreskowego ludzika (207)

Rozdział 5. Ryzykując powtórzeniem

  • "X" wskazuje miejsce (212)
  • Cały czas déja vu - pętle for (213)
  • Poszukiwanie skarbów z pętlą for (214)
  • Anatomia pętli for (215)
  • Mandango - wyszukiwarka miejsc dla prawdziwych macho (216)
  • Najpierw sprawdzamy dostępność miejsc (217)
  • Pętle, HTML i dostępność miejsc (218)
  • Fotele są zmiennymi (219)
  • Tablice gromadzą wiele danych (220)
  • Wartości tablicy są zapisywane wraz z kluczami (221)
  • Od JavaScriptu do HTML-a (225)
  • Wizualizacja miejsc na stronie Mandango (226)
  • Test: odnajdywanie pojedynczych wolnych miejsc (231)
  • Co za dużo, to niezdrowo - pętle nieskończone (232)
  • Pętle zawsze muszą mieć warunek zakończenia (albo nawet dwa!) (233)
  • Przerwa w działaniu (234)
  • Odkrywamy operatory logiczne (240)
  • Powtórzenia do skutku... dopóki warunek jest spełniony (244)
  • Analiza pętli while (245)
  • Zastosowanie odpowiedniej pętli do konkretnego zadania (247)
  • Modelowanie danych reprezentujących miejsca w kinie (253)
  • Tablica tablic - tablice dwuwymiarowe (254)
  • Dwa klucze zapewniają dostęp do tablicy dwuwymiarowej (255)
  • Dwuwymiarowe Mandango (257)
  • Cała sala miejsc dla prawdziwych macho (260)

Rozdział 6. Redukuj i używaj wielokrotnie

  • Matka wszystkich problemów (264)
  • Funkcje jako narzędzia do rozwiązywania problemów (266)
  • Tworzenie funkcji w praktyce (267)
  • Funkcje, które już poznałeś (268)
  • Lepsza klimatyzacja dzięki większej ilości danych (271)
  • Przekazywanie informacji do funkcji (272)
  • Argumenty funkcji jako dane (273)
  • Funkcje eliminują powtarzający się kod (274)
  • Tworzenie funkcji określającej status miejsc (277)
  • Funkcja setSeat() jeszcze bardziej poprawia kod aplikacji Mandango (279)
  • Znaczenie informacji zwrotnych (281)
  • Zwracanie danych z funkcji (282)
  • Wiele szczęśliwych wartości wynikowych (283)
  • Odczyt statusu miejsca (287)
  • Prezentacja statusu miejsca (288)
  • Możemy połączyć funkcję z obrazkiem (289)
  • Powielanie kodu nigdy nie jest dobre (290)
  • Separacja funkcjonalności od zawartości (291)
  • Funkcje są zwykłymi danymi (292)
  • Wywołania i odwołania do funkcji (293)
  • Zdarzenia, funkcje zwrotne i atrybuty HTML (297)
  • Określanie procedur obsługi zdarzeń przy użyciu odwołań do funkcji (298)
  • Literały funkcyjne spieszą z odsieczą (299)
  • Czym jest kojarzenie? (300)
  • Struktura strony HTML (303)

Rozdział 7. Aby użytkownik powiedział nam wszystko

  • Formularz rejestracyjny Banerolotu (309)
  • Kiedy HTML nie wystarcza (310)
  • Dostęp do danych formularzy (311)
  • Weryfikacja danych podąża za ciągiem zdarzeń (313)
  • Zdarzenia onblur - tracimy ostrość (314)
  • Możesz używać okienka informacyjnego do wyświetlania komunikatów o błędach (315)
  • Weryfikacja pól w celu sprawdzenia, czy mamy coś więcej niż "nic" (319)
  • Weryfikacja bez wkurzających okienek dialogowych (320)
  • Subtelniejsze metody weryfikacji danych (321)
  • Wielkość ma znaczenie... (323)
  • Weryfikacja długości danych (324)
  • Weryfikacja kodu pocztowego (329)
  • Weryfikacja daty (334)
  • Niezwykłe wyrażenia regularne (336)
  • Wyrażenia regularne definiują poszukiwane wzorce (337)
  • Metaznaki reprezentują więcej niż jeden znak (339)
  • Tajniki wyrażeń regularnych - kwantyfikatory (340)
  • Weryfikacja danych przy użyciu wyrażeń regularnych (344)
  • Dopasowywanie określonej liczby powtórzeń (347)
  • Eliminacja trzycyfrowego roku przy użyciu tego... lub tamtego... (349)
  • Niczego nie zostawiajmy przypadkowi (350)
  • Czy teraz mnie słyszysz? Weryfikacja numeru telefonu (351)
  • Masz wiadomość - weryfikacja adresów e-mail (352)
  • Wyjątek jest regułą (353)
  • Dopasowywanie opcjonalnych znaków ze zbioru (354)
  • Tworzenie funkcji weryfikującej adres e-mail (355)

Rozdział 8. Krojenie i przyprawianie HTML-a przy użyciu DOM

  • Funkcjonalny, lecz niezgrabny - interfejs użytkownika ma znaczenie (360)
  • Opisy scen bez okienek dialogowych (361)
  • Dostęp do elementów HTML (363)
  • Bliższe spotkanie z wewnętrznym HTML-em (364)
  • Aby zobaczyć lasy i drzewa - obiektowy model dokumentu (DOM) (369)
  • Twoja strona jest kolekcją węzłów DOM (370)
  • Poruszanie się po drzewie DOM przy użyciu właściwości (373)
  • Modyfikowanie węzła tekstowego przy wykorzystaniu DOM (376)
  • Przygoda standaryzowana (381)
  • Projektujemy większe i lepsze opcje (383)
  • Rozważania nad zastępowaniem węzłów tekstowych (384)
  • Funkcja zastępująca tekst w węźle (385)
  • Dynamiczne opcje nawigacyjne to świetna rzecz (386)
  • Interaktywne opcje decyzyjne są jeszcze lepsze (387)
  • Kwestia stylu: CSS i DOM (388)
  • Podmienianie stylów (389)
  • Klasowe opcje (390)
  • Test stylizowanych opcji decyzyjnych (391)
  • Problemy z opcjami - pusty przycisk (392)
  • Modyfikacja stylów wedle zamówienia (393)
  • Żadnych niepotrzebnych opcji (395)
  • Więcej opcji, większa złożoność (396)
  • Śledzenie drzewa decyzyjnego (398)
  • Przekształć historię swoich decyzji na kod HTML (399)
  • Produkcja kodu HTML (400)
  • Śledzenie przebiegu przygody (403)

Rozdział 9. Obiekty jako Frankendane

  • JavaScriptowa impreza (408)
  • Dane + akcje = obiekt (409)
  • Obiekt jest właścicielem danych (410)
  • W odwołaniach do składowych obiektu używamy kropki (411)
  • Niestandardowe obiekty rozszerzają język JavaScript (415)
  • Tworzenie własnego niestandardowego obiektu (416)
  • Co jest w konstruktorze? (417)
  • Powołujemy do życia obiekty blogu (418)
  • Potrzeba sortowania (423)
  • Obiekt daty w JavaScripcie (424)
  • Wyliczanie czasu (425)
  • Ponowna analiza zagadnienia dat w blogu (426)
  • Obiekt w obiekcie (427)
  • Konwersja obiektów na łańcuchy znaków (430)
  • Pobieranie konkretnych informacji o dacie (431)
  • Tablice jak obiekty (434)
  • Sortowanie tablic wedle własnych potrzeb (435)
  • Łatwiejsze sortowanie dzięki literałom funkcyjnym (436)
  • Przeszukiwanie wpisów w blogu (439)
  • Przeszukiwanie zawartości łańcucha znaków indexOf() (441)
  • Przeszukiwanie tablicy blogu (442)
  • Teraz działa także wyszukiwanie! (445)
  • Obiekt Math jest obiektem organizacyjnym (448)
  • Generowanie liczb losowych przy użyciu metody Math.random() (450)
  • Zamiana funkcji na metodę (455)
  • Przedstawiamy piękny nowy obiekt Blog (456)
  • Jakie są korzyści użycia obiektów na stronie MagicznaKostka? (457)

Rozdział 10. Zrób to po swojemu, używając własnych obiektów

  • Ponowna analiza metod obiektu Blog (462)
  • Przeciążanie metod (463)
  • Klasy i instancje (464)
  • Instancje są tworzone na podstawie klasy (465)
  • Słowo kluczowe this zapewnia dostęp do właściwości obiektów (466)
  • Należą do jednej, działają we wszystkich - metody należące do klasy (467)
  • Korzystaj z prototypu, by operować na poziomie klasy (468)
  • Klasy, prototypy i MagicznaKostka (469)
  • Także właściwości klasowe są współdzielone (474)
  • Tworzenie właściwości klasowych przy użyciu prototypu (475)
  • Podpisane i dostarczone (477)
  • Metoda formatująca daty (480)
  • Rozszerzanie standardowych obiektów (481)
  • Zmodyfikowany obiekt daty = lepsza strona Reni (482)
  • Klasa może mieć swoją własną metodę (483)
  • Analiza funkcji porównującej wpisy (485)
  • Wywoływanie metody klasowej (486)
  • Jeden obraz jest wart tysiąca słów w blogu (487)
  • Dodawanie obrazków do blogu (488)
  • Dodawanie obrazków do strony MagicznaKostka (490)
  • Obiektowa strona blogu (492)

Rozdział 11. Dobre skrypty na złej drodze

  • Debugowanie w praktyce (496)
  • Przypadek wadliwego kalkulatora IQ (497)
  • Wypróbuj kod w różnych przeglądarkach (498)
  • Proste sposoby usuwania błędów (501)
  • Dzikie niezdefiniowane zmienne (505)
  • Przetwarzając wartości IQ (507)
  • Przypadek błędów w połączeniach z radiem (508)
  • Otwieranie dochodzenia (509)
  • Problem weryfikacji błędów składniowych (pluskwa nr 1) (510)
  • Uwaga na te łańcuchy znaków (511)
  • Cudzysłowy, apostrofy i konsekwencja (512)
  • Kiedy apostrof nie jest apostrofem, użyj odwrotnego ukośnika (513)
  • Nie tylko zmienne mogą być niezdefiniowane (pluskwa nr 2) (514)
  • Każdy jest zwycięzcą (pluskwa nr 3) (516)
  • Testowanie przy użyciu okienka dialogowego (517)
  • Obserwowanie zmiennych przy użyciu okienek dialogowych (518)
  • Zła logika może być przyczyną błędów (520)
  • Nikt nie wygrywa! (pluskwa nr 4) (524)
  • Przytłoczony ilością denerwujących okienek dialogowych (525)
  • Tworzymy własną konsolę do testowania skryptów (527)
  • Błędy najgorsze ze wszystkich: błędy czasu wykonywania programu (534)
  • Bestiariusz JavaScriptu (535)
  • Komentarze jako chwilowe wyłączniki kodu (538)
  • Niebezpieczeństwa związane ze zmiennymi-cieniami (540)

Rozdział 12. Szybkie i wrażliwe aplikacje internetowe

  • Pożądając dynamicznych danych (546)
  • MagicznaKostka sterowana danymi (547)
  • Ajax oznacza komunikację (549)
  • XML - HTML na każdą okazję (550)
  • XML + HTML = XHTML (553)
  • XML i dane blogu Reni (555)
  • Ajax wzmacnia stronę MagicznaKostka (558)
  • XMLHttpRequest - JavaScript spieszy z pomocą (560)
  • GET czy POST? Użycie obiektu XMLHttpRequest (563)
  • Aby zrozumieć ajaksowe żądania (567)
  • Interaktywne strony zaczynają się od obiektu żądania (571)
  • Zawołaj mnie, kiedy skończysz (572)
  • Obsługa żądania... bezproblemowa (573)
  • DOM spieszy z pomocą (574)
  • Teraz strona MagicznaKostka jest w pełni zależna od swoich danych (579)
  • Niedziałające przyciski (581)
  • Przyciski potrzebują danych (582)
  • Usprawnienia oszczędzające czas blogera (585)
  • Zapisywanie danych blogu (586)
  • Także PHP ma swoje potrzeby (589)
  • Przekazywanie danych do skryptu PHP (590)
  • Do rzeczy - przesyłanie danych wpisu na serwer (593)
  • Ułatwienie korzystania ze strony blogu (598)
  • W ramach ułatwienia automatycznie wypełniaj pola formularzy (599)
  • Wielokrotnie wykonywane zadanie? Może by tak jakaś funkcja pomogła? (600)

Skorowidz (605)

  • Title: Head First JavaScript. Edycja polska
  • Author: Michael Morrison
  • Original title: Head First JavaScript (Head First)
  • Translation: Piotr Rajca
  • ISBN: 978-83-246-6048-3, 9788324660483
  • Date of issue: 2012-08-14
  • Format: Ebook
  • Item ID: hfjsc
  • Publisher: Helion