Head First JavaScript. Edycja polska - Helion
Tytuł oryginału: Head First JavaScript (Head First)
Tłumaczenie: Piotr Rajca
ISBN: 978-83-246-1548-3
stron: 624, Format: 200x230, okładka: miękka
Data wydania: 2009-05-26
Księgarnia: Helion
Cena książki: 89,00 zł
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!
Osoby które kupowały "Head First JavaScript. Edycja polska", wybierały także:
- D3.js w akcji 67,42 zł, (20,90 zł -69%)
- Tablice informatyczne. Node.js 16,86 zł, (5,90 zł -65%)
- React i GatsbyJS. Kurs video. Nowoczesne strony internetowe w oparciu o headless CMS i GraphQL 148,98 zł, (59,59 zł -60%)
- TypeScript i React. Kurs video. Tworzenie nowoczesnych komponent 129,00 zł, (51,60 zł -60%)
- Vue.js w praktyce. Kurs video. Poznaj narz 148,98 zł, (59,59 zł -60%)
Spis treści
Head First JavaScript. Edycja polska -- spis treści
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)