Programowanie w JavaScript. Rusz głową! - Helion
Tytuł oryginału: Head First JavaScript Programming
Tłumaczenie: Piotr Rajca
ISBN: 978-83-246-9880-6
stron: 664, Format: 200x230, okładka: miękka
Data wydania: 2015-02-20
Księgarnia: Helion
Cena książki: 83,85 zł (poprzednio: 129,00 zł)
Oszczędzasz: 35% (-45,15 zł)
- 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
Osoby które kupowały "Programowanie w JavaScript. Rusz głową!", 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
Programowanie w JavaScript. Rusz głową! -- spis treści
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)