"JavaScript dla dzieci"

Identyfikator Librowy: 154851

Spis treści

PODZIĘKOWANIA 22

WPROWADZENIE 24

Jak należy czytać tę książkę? 25

Kto powinien przeczytać tę książkę? 25

Co znajdziesz w tej książce? 26

Baw się dobrze! 27

Wprowadzenie do wydania polskiego 28

CZĘŚĆ I: PODSTAWY 30

1 CO TO JEST JAVASCRIPT? 32

Poznaj JavaScript 33

Po co się uczyć języka JavaScript? 35

Pierwsze kroki w JavaScript 36

Struktura programu JavaScript 37

Komentarze 39

Składnia 39

Co już wiesz 40

2 TYPY DANYCH I ZMIENNE 42

Liczby i operatory 44

Zmienne 46

Nazwy zmiennych 48

Tworzenie nowych zmiennych za pomocą działań matematycznych 48

Inkrementacja i dekrementacja 50

+= (plus-równa się) i – = (minus-równa się) 51

Łańcuchy znaków 52

Łączenie łańcuchów znaków 54

Ustalanie długości łańcucha znaków 54

Pobieranie pojedynczego znaku z łańcucha 55

Przycinanie łańcucha znaków 56

Zmiana wszystkich znaków w łańcuchu na wielkie albo małe litery 57

Logiczny typ danych 59

Operatory logiczne 59

Porównywanie liczb na podstawie wartości logicznych 62

Wartości undefined i null 66

Co już wiesz 67

3 TABLICE 68

Po co zajmować się tablicami? 69

Tworzenie tablicy 70

Wybieranie elementów z tablicy 71

Ustawianie czyli zmienianie elementów tablicy 72

Mieszanie typów danych w tablicy 74

Praca z tablicami 75

Znajdowanie długości tablicy 75

Dodawanie elementów do tablicy 76

Usuwanie elementów z tablicy 77

Dodawanie tablic 79

Znajdowanie indeksu elementu w tablicy 81

Przekształcanie tablicy w łańcuch znaków 82

Pożytek z tablic 83

Znajdowanie drogi do domu 83

Program do podejmowania decyzji 85

Tworzenie generatora losowych zniewag 88

Co już wiesz 89

#1: Nowe zniewagi 90

#2: Bardziej wymyślne zniewagi 90

#3: Operator + czy metoda join? 90

#4: Liczby i metoda join 90

Dla ambitnych 90

4 OBIEKTY 92

Tworzenie obiektów 93

Klucze bez cudzysłowów 94

Wybieranie wartości w obiekcie 95

Dodawanie wartości do obiektów 96

Dodawanie kluczy za pomocą notacji kropkowej 97

Łączenie tablic z obiektami 98

Tablica pełna przyjaciół 98

Eksploracja obiektów w konsoli 100

Pożytek z obiektów 101

Śledzenie należnych pieniędzy 101

Zapisywanie informacji o filmach 103

Co już wiesz 104

#1: Tablica wyników 105

#2: Eksplorowanie obiektów i tablic 105

Dla ambitnych 105

5 PODSTAWY HTML 106

Edytory tekstu 107

Nasz pierwszy dokument HTML 108

Znaczniki i elementy 109

Nagłówki 109

Element p 110

Odstępy w HTML i elementy blokowe 111

Elementy wierszowe 112

Kompletny dokument HTML 113

Hierarchia HTML 114

Dodawanie odnośników do kodu HTML 115

Atrybuty odnośnika 116

Atrybut title 117

Co już wiesz 118

6 INSTRUKCJE WARUNKOWE I PĘTLE 120

Osadzanie JavaScript w HTML 121

Instrukcje warunkowe 122

Instrukcje if 122

Instrukcje if…else 124

Szeregowanie instrukcji if…else 125

Pętle 127

Pętle while 128

Pętle for 130

Co już wiesz 134

#1: Niesamowite zwierzęta 135

#2: Generator losowych napisów 135

Dla ambitnych 135

#3: h4ck3rsk4 m0w4 136

7 GRA SZUBIENICA 138

Komunikacja z graczem 139

Tworzenie okienka typu prompt 139

Funkcja confirm – zadawanie pytań rozstrzygających 141

Funkcja alert – wyświetlanie informacji 142

Projektujemy grę 143

Kiedy używać funkcji alert zamiast metody consolelog? 143

Śledzenie stanu słowa 144

Projektowanie gry z użyciem pseudokodu 144

Projektowanie głównej pętli gry 145

Kod gry 146

Wybieranie losowego słowa 146

Kod głównej pętli gry 147

Tworzenie tablicy z odpowiedziami 147

Kod gry 151

Kończenie gry 151

Co już wiesz 153

#1: Więcej słów 154

#2: Wielkie litery 154

#3: Ograniczanie liczby strzałów 154

#4: Usuwanie usterki 154

Dla ambitnych 154

8 FUNKCJE 156

Podstawowa anatomia funkcji 157

Tworzenie prostej funkcji 157

Wywoływanie funkcji 158

Przesyłanie argumentów do funkcji 159

Wyświetlanie kocich pyszczków! 160

Przesyłanie do funkcji wielu argumentów 161

Zwracanie wartości z funkcji 162

Używanie wywołania funkcji jako wartości 164

Upraszczanie kodu za pomocą funkcji 165

Funkcja do wyboru losowego słowa 165

Generator losowych zniewag 165

Przekształcanie generatora losowych zniewag w funkcję 167

Wcześniejsze opuszczanie funkcji za pomocą słowa kluczowego return 168

Wielokrotne używanie return zamiast instrukcji if…else 169

#1: Wykonywanie obliczeń za pomocą funkcji 171

#2: Czy te tablice są takie same? 171

Co już wiesz 171

Dla ambitnych 171

#3: Szubienica z funkcjami 172

CZĘŚĆ II: JAVASCRIPT KROK DALEJ 174

9 DOM I JQUERY 176

Wybór elementów DOM 177

Identyfikowanie elementów za pomocą atrybutu id 178

Wybór elementu za pomocą metody getElementById 178

Zamiana tekstu w nagłówku za pomocą DOM 179

Praca z drzewem DOM za pomocą jQuery 181

Ładowanie jQuery na stronie HTML 181

Zamiana tekstu w nagłówku za pomocą jQuery 181

Tworzenie nowych elementów za pomocą jQuery 183

Animowanie elementów za pomocą jQuery 184

Szeregowanie animacji jQuery 185

#1: Wyświetlanie imion znajomych za pomocą jQuery (w taki sposób, żeby ich do siebie zrazić!) 187

#2: Tworzenie migającego nagłówka 187

Co już wiesz 187

Dla ambitnych 187

#3: Opóźnianie animacji 188

#4: Używanie metody fadeTo 188

10 PROGRAMOWANIE INTERAKTYWNE 190

Opóźnianie wykonania kodu za pomocą funkcji setTimeout 191

Anulowanie czasu zwłoki 192

Wielokrotne wywoływanie kodu za pomocą funkcji setInterval 193

Animowanie elementów za pomocą funkcji setInterval 194

Reagowanie na działania użytkownika 197

Reagowanie na kliknięcia 197

Zdarzenie mousemove 199

Co już wiesz 200

#1: Idź za kliknięciami 201

#2: Wymyśl swoją własną animację 201

#3: Anulowanie animacji kliknięciem 201

#4: Napisz grę „Kliknij nagłówek”! 201

Dla ambitnych 201

11 ZNAJDŹ UKRYTY SKARB! 202

Projektowanie gry 203

Tworzenie internetowej strony w HTML 204

Wybór losowego miejsca ukrycia skarbu 205

Wybieranie losowych liczb 205

Funkcja obsługi kliknięcia 206

Ustawianie współrzędnych skarbu 206

Licznik kliknięć 207

Obliczanie odległości pomiędzy kliknięciem a skarbem 207

Zastosowanie twierdzenia Pitagorasa 208

Informowanie gracza o odległości od skarbu 210

Kompletny kod gry 211

Sprawdzanie, czy gracz wygrał 211

Co już wiesz 213

#1: Zwiększanie obszaru gry 214

#2: Kolejne komunikaty 214

#3: Dodanie limitu kliknięć 214

#4: Wyświetlanie liczby kliknięć do wykorzystania 214

Dla ambitnych 214

12 PROGRAMOWANIE OBIEKTOWE 216

Dodawanie metod do obiektów 217

Prosty obiekt 217

Używanie słowa kluczowego this 218

Współdzielenie metody przez wiele obiektów 218

Tworzenie obiektów za pomocą konstruktorów 220

Anatomia konstruktora 220

Tworzenie konstruktora Auto 221

Rysowanie aut 223

Testowanie funkcji rysujAuto 224

Dostosowywanie obiektów za pomocą prototypów 225

Dodawanie metody rysuj do prototypu Auto 226

Dodawanie metody wPrawo 227

Dodawanie metod do jazdy w lewo, w górę i w dół 228

Co już wiesz 230

#1: Rysowanie w konstruktorze Auto 231

#2: Dodawanie właściwości szybkość 231

#3: Wyścigówki 231

Dla ambitnych 231

CZĘŚĆ III: PŁÓTNO 232

13 ELEMENT CANVAS 234

Rysowanie na płótnie 235

Tworzenie podstawowego płótna 235

Rysowanie kwadratu 236

Uzyskiwanie kontekstu rysowania 236

Wybieranie i zapisywanie elementu canvas 236

Rysowanie wielu kwadratów 237

Zmiana koloru rysowania 238

Rysowanie obrysów prostokątów 240

Rysowanie linii czyli ścieżek 241

Wypełnianie ścieżek 242

Rysowanie łuków i okręgów 244

Rysowanie ćwiartki okręgu czyli łuku 245

Rysowanie półokręgu 246

Rysowanie pełnego okręgu 246

Rysowanie wielu okręgów za pomocą funkcji 247

#1: Funkcja do rysowania bałwana 249

Co już wiesz 249

Dla ambitnych 249

#2: Rysowanie tablicy punktów 250

#3: Rysowanie za pomocą myszy 250

#4: Rysowanie wisielca w grze Szubienica 250

14 PRZESUWANIE ELEMENTÓW NA PŁÓTNIE 252

Poruszanie wzdłuż strony 253

Czyszczenie płótna 254

Oglądanie animacji w przeglądarce 254

Rysowanie prostokąta 254

Zmiana pozycji 254

Animowanie rozmiaru kwadratu 255

Nieprzewidywalna pszczoła 256

Nowa funkcja okrąg 257

Rysowanie pszczoły 257

Aktualizacja pozycji pszczoły 259

Animowanie naszej nieprzewidywalnej pszczoły 260

Odbijanie piłki! 262

Konstruktor Piłka 262

Rysowanie piłki 263

Odbijanie się piłki 264

Przesuwanie piłki 264

Animowanie piłki 266

Co już wiesz 267

#1: Piłka odbijająca się na większym płótnie 268

Dla ambitnych 268

#2: Losowe wartości thisxSzybkość i thisySzybkość 269

#3: Animowanie większej liczby piłek 269

#4: Tworzenie kolorowych piłek 269

15 STEROWANIE ANIMACJAMI ZA POMOCĄ KLAWISZY 270

Zdarzenia klawiatury 271

Przygotowanie pliku HTML 271

Dodawanie obsługi zdarzenia keydown 272

Używanie obiektu do przekształcania kodów klawiszy na nazwy 273

Przesuwanie piłki za pomocą klawiatury 274

Definiowanie funkcji okrąg 275

Konfigurowanie płótna 275

Tworzenie konstruktora Piłka 275

Definiowanie metody przesuwaj 276

Definiowanie metody rysuj 277

Tworzenie metody ustawKierunek 278

Reagowanie na zdarzenia klawiatury 279

Animowanie piłki 280

Pełny kod 281

Wykonywanie kodu 283

#1: Odbijanie się od ścian 284

#2: Sterowanie szybkością 284

Co już wiesz 284

Dla ambitnych 284

#3: Elastyczne kontrolki 285

16 ZRĘCZNOŚCIOWA GRA WĄŻ: CZĘŚĆ 1 286

Założenia ogólne 287

Struktura gry 288

Tworzenie obiektów gry 289

Używanie funkcji setInterval do animowania gry 289

Konfiguracja gry 290

Konfiguracja sterowania z poziomu klawiatury 290

Tworzenie pliku HTML 290

Definiowanie zmiennych płótno, kontekst, szerokość i wysokość 291

Dzielenie płótna na bloki 291

Rysowanie obramowania 293

Definiowanie zmiennej wynik 293

Wyświetlanie wyniku 295

Ustawianie linii bazowej tekstu 296

Ustawianie rozmiaru i czcionki 297

Funkcja rysujWynik 298

Kończenie gry 299

Co już wiesz 300

#1: Składanie wszystkiego razem 301

#2: Animacja wyniku 301

#3: Dodawanie tekstu do Szubienicy 301

Dla ambitnych 301

17 ZRĘCZNOŚCIOWA GRA WĄŻ: CZĘŚĆ 2 302

Tworzenie konstruktora Blok 303

Dodawanie metody rysujKwadrat 304

Dodawanie metody rysujOkrąg 305

Dodawanie metody porównaj 307

Tworzenie węża 308

Pisanie konstruktora Wąż 308

Rysowanie węża 309

Ruchy węża 310

Dodawanie metody przesuń 310

Dodawanie metody wykryjKolizje 314

Ustawianie kierunku węża z klawiatury 316

Dodawanie obsługi zdarzenia keydown 316

Dodawanie metody ustawKierunek 317

Tworzenie jabłka 318

Pisanie konstruktora Jabłko 318

Rysowanie jabłka 318

Ruch jabłka 319

Pełny kod 320

Co już wiesz 326

#1: Powiększanie planszy 327

#2: Kolorowanie węża 327

#3: Zwiększanie szybkości gry w jej trakcie 327

Dla ambitnych 327

#4: Poprawianie metody jabłkoprzenieś 328

POSŁOWIE CO DALEJ? 330

Tworzenie stron internetowych 331

Więcej JavaScript 331

CSS 331

HTML 331

Programowanie grafi ki 332

Element canvas 332

Kod po stronie serwera i Nodejs 332

Programowanie 3D 333

Programowanie robotów 333

SVG z biblioteką Raphaël 333

Programowanie audio 334

Programowanie gier 334

Udostępnianie kodu za pomocą JSFiddle 335

SŁOWNICZEK 336

SKOROWIDZ 342