Szczegóły ebooka

Programowanie w JavaScript. Rusz głową!

Programowanie w JavaScript. Rusz głową!

Eric T. Freeman, Elisabeth Robson

Ebook
  • Naucz się jak używać języka JavaScript do prowadzenia interakcji ze stronami WWW.
  • Rozwiń swoje umiejętności poza pisanie prostych skryptów — poznaj programowanie obiektowe.
  • Buduj prawdzie, interaktywne aplikacje internetowe.
  • Zobacz jak rozwiązywać realne problem, aby poznać najlepsze sposoby pisania kodu.
  • Spróbuj rozwikłać ponad 120 zagadek i ćwiczeń.

Jeżeli chcesz stworzyć atrakcyjną aplikację internetową lub stronę WWW, to poza znajomością języka HTML powinieneś również umieć korzystać z JavaScriptu. Język ten jeszcze całkiem niedawno wzbudzał wiele negatywnych emocji — ale te czasy odeszły w niepamięć! Bez jego pomocy współczesne strony WWW nie byłyby takie funkcjonalne!

Jeżeli chcesz poznać możliwości JavaScriptu oraz w pełni wykorzystać jego potencjał, trafiłeś na doskonałą książkę. Należy ona do cenionej serii „Rusz głową” i opisuje wszystkie aspekty programowania w tym języku. Sięgnij po nią i poznaj język JavaScript od podstaw. Każda kolejna strona to spora dawka wiedzy podanej w przystępny sposób. Pomoże Ci poznać składnię języka, jego podstawowe elementy i konstrukcje. W momencie, kiedy opanujesz podstawy, przejdziesz do bardziej zaawansowanych tematów — programowania obiektowego, manipulowania drzewem DOM, obsługi zdarzeń oraz korzystania z funkcji anonimowych i domknięć. Książka ta jest doskonałą lekturą dla wszystkich osób chcących biegle władać językiem JavaScript!


Dzięki tej książce:

  • poznasz składnię i podstawowe elementy języka JavaScript
  • nauczysz się tworzyć obiekty i obsługiwać zdarzenia
  • zobaczysz, jak wykorzystać domknięcia i funkcje anonimowe
  • stworzysz prawdziwą grę

Nauka języka JavaScript jeszcze nigdy nie była tak przyjemna!

 


„Doskonałe wprowadzenie do programowania, połączone z zaawansowanymi zagadnieniami, takimi jak tworzenie obiektów, dziedziczenie i domknięcia, pozwalające czytelnikom przejść od samych podstaw, aż do najbardziej interesujących pojęć nowoczesnego programowania”.

Peter Casey, profesor, Central Oregon Community College

„Ta książka przenosi Cię za kulisy języka JavaScript i zapewnia dogłębne zrozumienie zasad działania tego wyjątkowego języka programowania”.

Chris Fuselier, konsultant techniczny

„Szkoda, że nie miałam książki Programowanie w JavaScript. Rusz głową! kiedy zaczynałem”.

Daniel Konopacki; projektant oprogramowania kadrowego; The Wald Disney Company

 

 

 


 

 

 

 

Wprowadzenie

  • Dla kogo jest ta książka? (26)
  • Wiemy, co myślisz (27)
  • Wyobrażamy sobie, że czytelnik tej książki jest uczniem (28)
  • Metapoznanie - myślenie o myśleniu (29)
  • To, co MY zrobiliśmy (30)
  • To, co TY możesz zrobić, aby zmusić swój mózg do posłuszeństwa (31)
  • Przeczytaj to (32)
  • Recenzenci techniczni (35)
  • Podziękowania* (36)

1. Czas się zamoczyć

  • Sposób działania języka JavaScript (40)
  • Jak należy pisać kod JavaScript? (41)
  • Jak umieszczać kod JavaScript na stronie? (42)
  • Dziecinko, JavaScript przebył długą drogę... (44)
  • Jak tworzyć instrukcje? (48)
  • Zmienne i wartości (49)
  • Odsuń się od tej klawiatury! (50)
  • Wyrazić się (53)
  • Wykonywanie operacji więcej niż jeden raz (55)
  • Jak działa pętla while? (56)
  • Podejmowanie decyzji w języku JavaScript (60)
  • A kiedy trzeba podejmować WIELE decyzji... (61)
  • Wyciągnij rękę i nawiąż kontakt z użytkownikami (63)
  • Poznajemy bliżej funkcję console.log (65)
  • Otwieranie konsoli (66)
  • Piszemy poważną aplikację JavaScript (67)
  • Jak mogę dodać kod do strony? (Niech policzę wszystkie sposoby) (70)
  • Będziemy musieli was rozdzielić (71)

2. Idziemy dalej

  • Napiszmy grę w okręty (82)
  • Pierwsza próba... (82)
  • Punkt pierwszy: projekt wysokiego poziomu (83)
  • Analiza pseudokodu (85)
  • A... zanim przejdziemy dalej, nie zapomnij o kodzie HTML (87)
  • Pisanie kodu prostej wersji gry w okręty (88)
  • A teraz zajmijmy się logiką gry (89)
  • Krok pierwszy: przygotowanie pętli i pobranie danych (90)
  • Jak działa funkcja prompt? (91)
  • Sprawdzanie komórki wskazanej przez użytkownika (92)
  • Czy użytkownikowi udało się trafić? (94)
  • Dodanie kodu wykrywającego trafienia (95)
  • Prezentacja informacji o zakończonej grze (96)
  • To koniec implementacji logiki (98)
  • Chwilka na zapewnianie jakości (99)
  • Czy możemy pogadać o rozwlekłości Twojego kodu? (103)
  • Kończymy prostą wersję gry w okręty (104)
  • Jak przypisywać wartości losowe? (105)
  • Najlepszy na świecie przepis na generowanie liczb losowych (105)
  • Wróćmy do zapewniania jakości (107)
  • Gratulujemy pierwszego prawdziwego programu w języku JavaScript i mamy dwa słowa o wielokrotnym używaniu kodu (109)

3. Stawiamy na funkcjonalność

  • Co z tym kodem było nie tak? (117)
  • Swoją drogą, czy wspominaliśmy już o FUNKCJACH? (119)
  • No dobrze, ale jak to właściwie działa? (120)
  • Co można przekazywać do funkcji? (125)
  • JavaScript przekazuje przez wartość (128)
  • Zakręcone funkcje (130)
  • Funkcje mogą także coś zwracać (131)
  • Śledzenie wykonania funkcji z instrukcją return (132)
  • Zmienne globalne i lokalne (135)
  • Poznawanie zasięgu zmiennych lokalnych i globalnych (137)
  • Krótkie życie zmiennych (138)
  • Nie zapominaj o deklarowaniu zmiennych (139)

4. Tablice

  • Czy możesz pomóc firmie BańkoCorp? (160)
  • Jak reprezentować wiele wartości w JavaScripcie? (161)
  • Jak działają tablice? (162)
  • A w ogóle jak duża jest tablica? (164)
  • Korpo-zdanio-budowator (166)
  • W międzyczasie w firmie BańkoCorp... (169)
  • Jak pobrać wszystkie elementy tablicy? (172)
  • Chwila, istnieje lepszy sposób iteracji po tablicy (174)
  • Czy możemy porozmawiać o rozwlekłości Twojego kodu? (180)
  • Poprawienie pętli for przy użyciu operatora postinkrementacji (181)
  • Szybka jazda próbna (181)
  • Tworzenie pustej tablicy (i dodawanie do niej danych) (185)
  • Zwycięzcami są... (189)
  • Krótka inspekcja kodu... (191)
  • Piszemy funkcję printAndGetHighScore (192)
  • Refaktoryzacja kodu z użyciem funkcji printAndGetHighScore (193)
  • Zastosowanie zmian... (195)

5. Wycieczka do Obiektowa

  • Czy ktoś powiedział "obiekty"? (206)
  • Myśląc o właściwościach... (207)
  • W jaki sposób tworzy się obiekty? (209)
  • Czym w ogóle jest programowanie obiektowe? (212)
  • Jak działają właściwości? (213)
  • W jaki sposób zmienna przechowuje obiekt? Ciekawe umysły chciałyby to wiedzieć... (218)
  • Porównanie danych typów prostych i obiektów (219)
  • Jeszcze inne operacje z wykorzystaniem obiektów... (220)
  • Analiza działania wstępnej selekcji (222)
  • Porozmawiajmy nieco więcej o przekazywaniu obiektów do funkcji (224)
  • Zachowuj się! Jak dodawać zachowania do obiektów? (230)
  • Poprawianie metody drive (231)
  • Dlaczego metoda drive nic nie wie o właściwości started? (234)
  • Jak działa this? (236)
  • Jak zachowanie wpływa na stan? Dodajemy trochę paliwa (242)
  • A teraz niech stan będzie mieć wpływ na zachowanie (243)
  • Gratulujemy utworzenia pierwszych obiektów! (245)
  • Wiesz co? Obiekty są wszędzie dookoła Ciebie (i ułatwiają Ci życie) (246)

6. Poznajemy DOM

  • W poprzednim rozdziale miałeś wykonać niewielką misję - misję złamania kodu (260)
  • Co robi ten kod? (261)
  • Jak naprawdę wygląda interakcja JavaScriptu ze stroną WWW? (263)
  • Jak wypiec swój własny DOM? (264)
  • Pierwszy smak DOM (265)
  • Pobieranie elementu przy użyciu metody getElementById (270)
  • Co pobieramy z DOM? (271)
  • Dostęp do kodu HTML w elemencie (272)
  • Co się dzieje, kiedy zmieniamy DOM? (274)
  • Jazda próbna wokół planet (277)
  • Nawet nie myśl o uruchamianiu mojego kodu, zanim strona nie zostanie w całości wczytana (279)
  • Ty mówisz: "przeglądarka", ja mówię: "wywołanie zwrotne" (280)
  • Jak ustawiać atrybuty przy użyciu metody setAttribute? (285)
  • Więcej zabawy z atrybutami (wartości atrybutów można także POBIERAĆ) (286)
  • Nie zapominaj, że także metoda getElementById może zwracać null (286)
  • Tymczasem w systemie słonecznym... (287)

7. Poważne typy

  • Gdzieś tam jest ukryta prawda... (294)
  • Uważaj, możesz natknąć się na undefined, kiedy będziesz się tego najmniej spodziewać... (296)
  • Jak używać null? (299)
  • Stosowanie wartości NaN (301)
  • Sprawy stają się jeszcze dziwniejsze (301)
  • Musimy coś wyznać (303)
  • Zrozumienie operatora równości (pseudonim: ==) (304)
  • Jak wykonywana jest konwersja operandów operatora równości (brzmi groźniej, niż jest w rzeczywistości)? (305)
  • Jak ściśle podejść do zagadnienia równości? (308)
  • Jeszcze więcej konwersji typów... (314)
  • Jak określić, czy dwa obiekty są równe? (317)
  • Gdzieś tam leży prawda... (319)
  • JavaScript uwzględnia fałsz (320)
  • Sekretne życie łańcuchów znaków (322)
  • Dlaczego łańcuch może wyglądać jak dana typu prostego oraz jak obiekt? (323)
  • Pięciominutowa wycieczka po metodach (i właściwościach) łańcuchów znaków (325)
  • Wojna o fotel (329)

8. Tworzenie aplikacji

  • Tym razem napiszemy PRAWDZIWĄ grę w okręty (344)
  • Krok wstecz... do HTML i CSS (345)
  • Tworzenie strony HTML: postać ogólna (346)
  • Dodawanie stylów (350)
  • Stosowanie klas hit i miss (353)
  • Jak zaprojektować grę? (355)
  • Implementacja widoku (357)
  • Jak działa metoda displayMessage? (357)
  • Jak działają metody displayHit oraz displayMiss? (359)
  • Model (362)
  • W jaki sposób będziemy reprezentować okręty? (364)
  • Implementacja obiektu modelu (367)
  • Rozmyślamy o metodzie fire (368)
  • Implementacja kontrolera (375)
  • Przetwarzanie pola wskazanego przez użytkownika (376)
  • Planowanie kodu... (377)
  • Implementacja funkcji parseGuess (378)
  • W międzyczasie w kontrolerze... (381)
  • Dodanie procedury obsługi zdarzeń do przycisku Ognia! (385)
  • Przekazywanie współrzędnych do kontrolera (386)
  • Jak rozmieszczać okręty? (390)
  • Implementacja metody generateShip (391)
  • Generacja początkowego pola okrętu (392)
  • Dokończenie metody generateShip (393)

9. Obsługa zdarzeń

  • Czym są zdarzenia? (409)
  • Czym jest procedura obsługi zdarzeń? (410)
  • Jak napisać pierwszą procedurę obsługi zdarzeń? (411)
  • Jazda próbna procedury obsługi zdarzeń (412)
  • Poznajemy zdarzenia, pisząc grę (414)
  • Implementacja gry (415)
  • Jazda próbna (416)
  • Dodajmy więcej obrazków (420)
  • Teraz musimy przypisać tę samą procedurę obsługi zdarzeń do właściwości onclick każdego obrazka (421)
  • Jak użyć tej samej funkcji do obsługi wszystkich obrazków? (422)
  • Jak działa obiekt zdarzenia? (425)
  • Zaprzęgamy obiekt zdarzenia do pracy (427)
  • Testujemy obiekt zdarzenia i właściwość target (428)
  • Zdarzenia i kolejki (430)
  • Jeszcze więcej zdarzeń (433)
  • Jak działa funkcja setTimeout? (434)
  • Kończenie gry (438)
  • Jazda testowa z licznikiem czasu (439)

10. Wyzwolone funkcje

  • Tajemnicze, podwójne życie słowa kluczowego function (454)
  • Deklaracje funkcji a wyrażenia funkcyjne (455)
  • Przetwarzanie deklaracji funkcji (456)
  • I co dalej? Przeglądarka wykonuje kod (457)
  • Idziemy dalej... Instrukcja warunkowa (458)
  • O tym, dlaczego funkcje są także wartościami (463)
  • Czy wspominaliśmy już, że w JavaScripcie funkcje mają status "pierwszej klasy"? (466)
  • Latanie pierwszą klasą (467)
  • Piszemy kod do przetwarzania i sprawdzania pasażerów (468)
  • Przetwarzanie listy pasażerów (470)
  • Przekazywanie funkcji do funkcji (471)
  • Zwracanie funkcji z funkcji (474)
  • Pisanie kodu do wydawania napojów (475)
  • Pisanie kodu do wydawania napojów - inne podejście (476)
  • Przyjmowanie zamówień z wykorzystaniem funkcji pierwszej klasy (478)
  • Cola sieciowicka (481)
  • Jak działa metoda sort tablic? (483)
  • Łączymy wszystko w całość (484)
  • Weźmy teraz sortowanie na jazdę próbną (486)

11. Poważne funkcje

  • Rzut oka na inną stronę funkcji... (500)
  • Jak używać funkcji anonimowych? (501)
  • Musimy ponownie pomówić o rozwlekłości Twojego kodu (503)
  • Kiedy funkcja zostaje zdefiniowana? To zależy... (507)
  • Co się właśnie stało? Dlaczego funkcja fly nie była zdefiniowana? (508)
  • Zagnieżdżanie funkcji (509)
  • Jaki wpływ na zasięg ma zagnieżdżanie funkcji? (510)
  • Krótka powtórka z zasięgu leksykalnego (512)
  • Miejsce, w którym zasięg leksykalny sprawia, że sprawy stają się interesujące (513)
  • Funkcje raz jeszcze (515)
  • Wywoływanie funkcji (po raz wtóry) (516)
  • Czym właściwie są domknięcia? (519)
  • Domykanie funkcji (520)
  • Zastosowanie domknięć w celu zaimplementowania magicznego licznika (522)
  • Zaglądamy za kulisy... (523)
  • Tworzenie domknięcia poprzez przekazanie wyrażenia funkcyjnego jako argumentu (525)
  • Domknięcia zawierają rzeczywiste środowisko, a nie jego kopię (526)
  • Tworzenie domknięć jako procedur obsługi zdarzeń (527)
  • Jak działa domknięcie liczące kliknięcia? (530)

12. Tworzenie obiektów

  • Tworzenie obiektów przy użyciu literałów obiektowych (544)
  • Stosowanie konwencji podczas tworzenia obiektów (545)
  • Prezentacja konstruktorów obiektów (547)
  • Jak utworzyć konstruktor? (548)
  • Jak należy używać konstruktorów? (549)
  • Sposób działania konstruktorów (550)
  • W konstruktorach można także umieszczać metody (552)
  • Nadszedł czas na produkcję masową (558)
  • Weźmy nowe samochody na jazdę próbną (560)
  • Nie zapominaj jeszcze o literałach obiektowych (561)
  • Przekazywanie argumentów przy użyciu literału obiektowego (562)
  • Modyfikacja konstruktora Car (563)
  • Zrozumieć instancje obiektów (565)
  • Nawet obiekty utworzone przy użyciu konstruktora mogą mieć własne właściwości (568)
  • Konstruktory stosowane w praktyce (570)
  • Obiekt Array (571)
  • Jeszcze więcej zabawy z wbudowanymi obiektami JavaScriptu (573)

13. Obiekty ekstramocne

  • Hej, zanim zaczniemy, mamy lepszy sposób rysowania diagramów obiektów (585)
  • Ponowna analiza konstruktorów: wielokrotnie używamy kodu, ale czy robimy to efektywnie? (586)
  • Czy powielanie metod jest poważnym problemem? (588)
  • Czym są prototypy? (589)
  • Dziedziczenie po prototypie (590)
  • Jak działa dziedziczenie? (591)
  • Przesłanianie prototypu (593)
  • Jak przygotować prototyp? (596)
  • Prototypy są dynamiczne (602)
  • Bardziej interesująca implementacja metody sit (604)
  • Jeszcze jeden raz: sposób działania właściwości sitting (605)
  • Jak zaprojektować psa pokazowego? (609)
  • Tworzenie łańcucha prototypów (611)
  • Jak działa dziedziczenie w łańcuchu prototypów? (612)
  • Tworzenie prototypu psa pokazowego (614)
  • Tworzenie instancji psa pokazowego (618)
  • Analiza wyników ćwiczenia (621)
  • Łańcuch prototypów nie kończy się na psie (627)
  • Wykorzystanie dziedziczenia na swoją korzyść... Przesłonięcie domyślnych metod (628)
  • Stosowanie dziedziczenia do własnych celów... Rozszerzanie wbudowanych obiektów (630)
  • Wielka Jednolita Teoria JavaScriptu (632)
  • Łączenie wszystkiego w całość (633)
  • Co dalej? (633)

A. Dziesięć najważniejszych rzeczy (których nie opisaliśmy)

  • 1. jQuery (644)
  • 2. Więcej operacji na DOM (646)
  • 3. Obiekt window (647)
  • 4. Obiekt arguments (648)
  • 5. Obsługa wyjątków (649)
  • 6. Dodawanie procedur obsługi zdarzeń przy użyciu metody addEventListener (650)
  • 7. Wyrażenia regularne (652)
  • 8. Rekurencja (654)
  • 9. JSON (656)
  • 10. JavaScript po stronie serwera (657)

Skorowidz (661)

  • Tytuł: Programowanie w JavaScript. Rusz głową!
  • Autor: Eric Freeman, Elisabeth Robson
  • Tytuł oryginału: Head First JavaScript Programming
  • Tłumaczenie: Piotr Rajca
  • ISBN: 978-83-246-9883-7, 9788324698837
  • Data wydania: 2015-02-20
  • Format: Ebook
  • Identyfikator pozycji: prjsrg
  • Wydawca: Helion