Programowanie w JavaScript. Rusz głową!

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

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

Author(s): Eric T. Freeman, Elisabeth Robson
Series: Head first - Rusz głową!
Publisher: Helion
Year: 2015

Language: Polish
Pages: 665
Tags: Программирование;Языки программирования

SPIS TREŚCI......Page 9
Autorzy książki 'Programowanie w języku JavaScript. Rusz głową!'......Page 8
Jak korzystać z tej książki. Wprowadzenie......Page 25
Dla kogo jest ta książka?......Page 26
Wiemy, co myślisz......Page 27
Metapoznanie — myślenie o myśleniu......Page 29
To, co MY zrobiliśmy......Page 30
To, co TY możesz zrobić, aby zmusić swój mózg do posłuszeństwa......Page 31
Przeczytaj to......Page 32
Recenzenci techniczni......Page 35
Podziękowania*......Page 36
ROZDZIAŁ 1. Szybki skok na głębokie wody JavaScriptu. Czas się zamoczyć......Page 39
Sposób działania języka JavaScript......Page 40
Jak należy pisać kod JavaScript?......Page 41
Jak umieszczać kod JavaScript na stronie?......Page 42
Dziecinko, JavaScript przebył długą drogę…......Page 44
Jak tworzyć instrukcje?......Page 48
Zmienne i wartości......Page 49
Odsuń się od tej klawiatury!......Page 50
Wyrazić się......Page 53
Wykonywanie operacji więcej niż jeden raz......Page 55
Jak działa pętla while?......Page 56
Podejmowanie decyzji w języku JavaScript......Page 60
A kiedy trzeba podejmować WIELE decyzji…......Page 61
Wyciągnij rękę i nawiąż kontakt z użytkownikami......Page 63
Poznajemy bliżej funkcję console.log......Page 65
Otwieranie konsoli......Page 66
Piszemy poważną aplikację JavaScript......Page 67
Jak mogę dodać kod do strony? (Niech policzę wszystkie sposoby)......Page 70
Będziemy musieli was rozdzielić......Page 71
Anatomia elementu script......Page 73
ROZDZIAŁ 2. Pisanie prawdziwego kodu. Idziemy dalej......Page 81
Pierwsza próba…......Page 82
Punkt pierwszy: projekt wysokiego poziomu......Page 83
Kilka dodatkowych szczegółów......Page 84
Analiza pseudokodu......Page 85
A… zanim przejdziemy dalej, nie zapomnij o kodzie HTML......Page 87
Pisanie kodu prostej wersji gry w okręty......Page 88
A teraz zajmijmy się logiką gry......Page 89
Krok pierwszy: przygotowanie pętli i pobranie danych......Page 90
Jak działa funkcja prompt?......Page 91
Sprawdzanie komórki wskazanej przez użytkownika......Page 92
Czy użytkownikowi udało się trafić?......Page 94
Hej, zatopiłeś mój okręt!......Page 95
Prezentacja informacji o zakończonej grze......Page 96
To koniec implementacji logiki......Page 98
Chwilka na zapewnianie jakości......Page 99
Czy możemy pogadać o rozwlekłości Twojego kodu?......Page 103
Kończymy prostą wersję gry w okręty......Page 104
Najlepszy na świecie przepis na generowanie liczb losowych......Page 105
Wróćmy do zapewniania jakości......Page 107
Gratulujemy pierwszego prawdziwego programu w języku JavaScript i mamy dwa słowa o wielokrotnym używaniu kodu......Page 109
ROZDZIAŁ 3. Przedstawienie funkcji. Stawiamy na funkcjonalność......Page 115
Co z tym kodem było nie tak?......Page 117
Swoją drogą, czy wspominaliśmy już o FUNKCJACH?......Page 119
No dobrze, ale jak to właściwie działa?......Page 120
Co można przekazywać do funkcji?......Page 125
JavaScript przekazuje przez wartość......Page 128
Funkcje mogą także coś zwracać......Page 131
Śledzenie wykonania funkcji z instrukcją return......Page 132
Anatomia funkcji......Page 133
Zmienne globalne i lokalne......Page 135
Poznawanie zasięgu zmiennych lokalnych i globalnych......Page 137
Krótkie życie zmiennych......Page 138
Nie zapominaj o deklarowaniu zmiennych......Page 139
ROZDZIAŁ 4. Porządkowanie naszych danych. Tablice......Page 159
Czy możesz pomóc firmie BańkoCorp?......Page 160
Jak reprezentować wiele wartości w JavaScripcie?......Page 161
Jak działają tablice?......Page 162
A w ogóle jak duża jest tablica?......Page 164
Korpo-zdanio-budowator......Page 166
W międzyczasie w firmie BańkoCorp…......Page 169
Jak pobrać wszystkie elementy tablicy?......Page 172
Chwila, istnieje lepszy sposób iteracji po tablicy......Page 174
Czy możemy porozmawiać o rozwlekłości Twojego kodu?......Page 180
Szybka jazda próbna......Page 181
Biurowej rozmowy ciąg dalszy…......Page 182
Tworzenie pustej tablicy (i dodawanie do niej danych)......Page 185
Zwycięzcami są…......Page 189
Krótka inspekcja kodu…......Page 191
Piszemy funkcję printAndGetHighScore......Page 192
Refaktoryzacja kodu z użyciem funkcji printAndGetHighScore......Page 193
Zastosowanie zmian…......Page 195
ROZDZIAŁ 5. Zrozumieć obiekty. Wycieczka do Obiektowa......Page 205
Czy ktoś powiedział „obiekty”?......Page 206
Myśląc o właściwościach…......Page 207
W jaki sposób tworzy się obiekty?......Page 209
Czym w ogóle jest programowanie obiektowe?......Page 212
Jak działają właściwości?......Page 213
W jaki sposób zmienna przechowuje obiekt? Ciekawe umysły chciałyby to wiedzieć…......Page 218
Porównanie danych typów prostych i obiektów......Page 219
Jeszcze inne operacje z wykorzystaniem obiektów…......Page 220
Wstępna selekcja......Page 221
Analiza działania wstępnej selekcji......Page 222
Porozmawiajmy nieco więcej o przekazywaniu obiektów do funkcji......Page 224
Burek na diecie…......Page 225
Zachowuj się! Jak dodawać zachowania do obiektów?......Page 230
Poprawianie metody drive......Page 231
Dlaczego metoda drive nic nie wie o właściwości started?......Page 234
Jak działa this?......Page 236
Jak zachowanie wpływa na stan? Dodajemy trochę paliwa......Page 242
A teraz niech stan będzie mieć wpływ na zachowanie......Page 243
Gratulujemy utworzenia pierwszych obiektów!......Page 245
Wiesz co? Obiekty są wszędzie dookoła Ciebie! (I ułatwiają Ci życie)......Page 246
ROZDZIAŁ 6. Interakcja ze stronami WWW. Poznajemy DOM......Page 259
W poprzednim rozdziale miałeś wykonać niewielką misję — misję złamania kodu......Page 260
Co robi ten kod?......Page 261
Jak naprawdę wygląda interakcja JavaScriptu ze stroną WWW?......Page 263
Jak wypiec swój własny DOM?......Page 264
Pierwszy smak DOM......Page 265
Pobieranie elementu przy użyciu metody getElementById......Page 270
Co pobieramy z DOM?......Page 271
Dostęp do kodu HTML w elemencie......Page 272
Co się dzieje, kiedy zmieniamy DOM?......Page 274
Jazda próbna wokół planet......Page 277
Nawet nie myśl o uruchamianiu mojego kodu, zanim strona nie zostanie w całości wczytana......Page 279
Ty mówisz: „przeglądarka”, ja mówię: „wywołanie zwrotne”......Page 280
Jak ustawiać atrybuty przy użyciu metody setAttribute?......Page 285
Nie zapominaj, że także metoda getElementById może zwracać null......Page 286
Tymczasem w systemie słonecznym.........Page 287
Do czego jeszcze może się przydać DOM?......Page 288
ROZDZIAŁ 7. Typy, równość, konwersje i cały ten jazz. Poważne typy......Page 293
Gdzieś tam jest ukryta prawda…......Page 294
Uważaj, możesz natknąć się na undefined, kiedy będziesz się tego najmniej spodziewać…......Page 296
Jak używać null?......Page 299
Sprawy stają się jeszcze dziwniejsze......Page 301
Musimy coś wyznać......Page 303
Zrozumienie operatora równości (pseudonim: ==)......Page 304
Jak wykonywana jest konwersja operandów operatora równości (brzmi groźniej, niż jest w rzeczywistości)?......Page 305
Jak ściśle podejść do zagadnienia równości?......Page 308
Jeszcze więcej konwersji typów…......Page 314
Jak określić, czy dwa obiekty są równe?......Page 317
Gdzieś tam leży prawda…......Page 319
JavaScript uwzględnia fałsz......Page 320
Sekretne życie łańcuchów znaków......Page 322
Dlaczego łańcuch może wyglądać jak dana typu prostego oraz jak obiekt?......Page 323
Pięciominutowa wycieczka po metodach (i właściwościach) łańcuchów znaków......Page 325
Wojna o fotel......Page 329
ROZDZIAŁ 8. Łączenie wszystkiego w całość. Tworzenie aplikacji......Page 343
Tym razem napiszemy PRAWDZIWĄ grę w okręty......Page 344
Krok wstecz… do HTML i CSS......Page 345
Tworzenie strony HTML: postać ogólna......Page 346
Dodawanie stylów......Page 350
Stosowanie klas hit i miss......Page 353
Jak zaprojektować grę?......Page 355
Jak działa metoda displayMessage?......Page 357
Jak działają metody displayHit oraz displayMiss?......Page 359
Model......Page 362
W jaki sposób będziemy reprezentować okręty?......Page 364
Implementacja obiektu modelu......Page 367
Przygotowywanie metody fire......Page 368
Implementacja kontrolera......Page 375
Przetwarzanie pola wskazanego przez użytkownika......Page 376
Planowanie kodu…......Page 377
Implementacja funkcji parseGuess......Page 378
W międzyczasie w kontrolerze…......Page 381
Dodanie procedury obsługi zdarzeń do przycisku Ognia!......Page 385
Przekazywanie współrzędnych do kontrolera......Page 386
Jak rozmieszczać okręty?......Page 390
Implementacja metody generateShip......Page 391
Generacja początkowego pola okrętu......Page 392
Dokończenie metody generateShip......Page 393
ROZDZIAŁ 9. Programowanie asynchroniczne. Obsługa zdarzeń......Page 407
Czym są zdarzenia?......Page 409
Czym jest procedura obsługi zdarzeń?......Page 410
Jak napisać pierwszą procedurę obsługi zdarzeń?......Page 411
Jazda próbna procedury obsługi zdarzeń......Page 412
Poznajemy zdarzenia, pisząc grę......Page 414
Implementacja gry......Page 415
Jazda próbna......Page 416
Dodajmy więcej obrazków......Page 420
Teraz musimy przypisać tę samą procedurę obsługi zdarzeń do właściwości onclick każdego obrazka......Page 421
Jak użyć tej samej funkcji do obsługi wszystkich obrazków?......Page 422
Jak działa obiekt zdarzenia?......Page 425
Zaprzęgamy obiekt zdarzenia do pracy......Page 427
Testujemy obiekt zdarzenia i właściwość target......Page 428
Zdarzenia i kolejki......Page 430
Jeszcze więcej zdarzeń......Page 433
Jak działa funkcja setTimeout?......Page 434
Kończenie gry......Page 438
Jazda testowa z licznikiem czasu......Page 439
ROZDZIAŁ 10. Funkcje pierwszej klasy. Wyzwolone funkcje......Page 453
Tajemnicze, podwójne życie słowa kluczowego function......Page 454
Deklaracje funkcji a wyrażenia funkcyjne......Page 455
Przetwarzanie deklaracji funkcji......Page 456
I co dalej? Przeglądarka wykonuje kod......Page 457
Idziemy dalej… Instrukcja warunkowa......Page 458
Zbliżamy się do końca…......Page 459
O tym, dlaczego funkcje są także wartościami......Page 463
Czy wspominaliśmy już, że w JavaScripcie funkcje mają status „pierwszej klasy”?......Page 466
Latanie pierwszą klasą......Page 467
Piszemy kod do przetwarzania i sprawdzania pasażerów......Page 468
Przetwarzanie listy pasażerów......Page 470
Lot próbny......Page 471
Zwracanie funkcji z funkcji......Page 474
Pisanie kodu do wydawania napojów......Page 475
Pisanie kodu do wydawania napojów — inne podejście......Page 476
Chwileczkę, potrzebujemy więcej napojów!......Page 477
Przyjmowanie zamówień z wykorzystaniem funkcji pierwszej klasy......Page 478
Lot próbny......Page 479
Cola sieciowicka......Page 481
Jak działa metoda sort tablic?......Page 483
Łączymy wszystko w całość......Page 484
W międzyczasie w firmie Cola sieciowicka......Page 485
Weźmy teraz sortowanie na jazdę próbną......Page 486
Rozwiązania ćwiczeń......Page 489
ROZDZIAŁ 11. Funkcje anonimowe, zasięg i domknięcia. Poważne funkcje......Page 499
Rzut oka na inną stronę funkcji…......Page 500
Jak używać funkcji anonimowych?......Page 501
Musimy ponownie pomówić o rozwlekłości Twojego kodu......Page 503
Kiedy funkcja zostaje zdefiniowana? To zależy…......Page 507
Co się właśnie stało? Dlaczego funkcja fly nie była zdefiniowana?......Page 508
Zagnieżdżanie funkcji......Page 509
Jaki wpływ na zasięg ma zagnieżdżanie funkcji?......Page 510
Krótka powtórka z zasięgu leksykalnego......Page 512
Miejsce, w którym zasięg leksykalny sprawia, że sprawy stają się interesujące......Page 513
Funkcje raz jeszcze......Page 515
Wywoływanie funkcji (po raz wtóry)......Page 516
Czym właściwie są domknięcia?......Page 519
Domykanie funkcji......Page 520
Zastosowanie domknięć w celu zaimplementowania magicznego licznika......Page 522
Zaglądamy za kulisy…......Page 523
Tworzenie domknięcia poprzez przekazanie wyrażenia funkcyjnego jako argumentu......Page 525
Domknięcia zawierają rzeczywiste środowisko, a nie jego kopię......Page 526
Tworzenie domknięć jako procedur obsługi zdarzeń......Page 527
Kliknij mnie! Z użyciem domknięcia......Page 528
Jazda próbna z licznikiem kliknięć......Page 529
Jak działa domknięcie liczące kliknięcia?......Page 530
ROZDZIAŁ 12. Zaawansowane sposoby konstruowania obiektów. Tworzenie obiektów......Page 543
Tworzenie obiektów przy użyciu literałów obiektowych......Page 544
Stosowanie konwencji podczas tworzenia obiektów......Page 545
Prezentacja konstruktorów obiektów......Page 547
Jak utworzyć konstruktor?......Page 548
Jak należy używać konstruktorów?......Page 549
Sposób działania konstruktorów......Page 550
W konstruktorach można także umieszczać metody......Page 552
Nadszedł czas na produkcję masową......Page 558
Weźmy nowe samochody na jazdę próbną......Page 560
Nie zapominaj jeszcze o literałach obiektowych......Page 561
Przekazywanie argumentów przy użyciu literału obiektowego......Page 562
Modyfikacja konstruktora Car......Page 563
Zrozumieć instancje obiektów......Page 565
Nawet obiekty utworzone przy użyciu konstruktora mogą mieć własne właściwości......Page 568
Konstruktory stosowane w praktyce......Page 570
Obiekt Array......Page 571
Jeszcze więcej zabawy z wbudowanymi obiektami JavaScriptu......Page 573
ROZDZIAŁ 13. Stosowanie prototypów. Obiekty ekstramocne......Page 583
Hej, zanim zaczniemy, mamy lepszy sposób rysowania diagramów obiektów......Page 585
Ponowna analiza konstruktorów: wielokrotnie używamy kodu, ale czy robimy to efektywnie?......Page 586
Czy powielanie metod jest poważnym problemem?......Page 588
Czym są prototypy?......Page 589
Dziedziczenie po prototypie......Page 590
Jak działa dziedziczenie?......Page 591
Przesłanianie prototypu......Page 593
Jak pobrać prototyp?......Page 595
Jak przygotować prototyp?......Page 596
Testujemy prototyp, jadąc z psami na spacer......Page 597
Zadbajmy o odpowiedni głos dla Kła......Page 598
Uczymy wszystkie psy nowej sztuczki......Page 601
Prototypy są dynamiczne......Page 602
Bardziej interesująca implementacja metody sit......Page 604
Jeszcze jeden raz: sposób działania właściwości sitting......Page 605
Jak zaprojektować psa pokazowego?......Page 609
Tworzenie łańcucha prototypów......Page 611
Jak działa dziedziczenie w łańcuchu prototypów?......Page 612
Tworzenie prototypu psa pokazowego......Page 614
Krok pierwszy: potrzebujemy obiektu dziedziczącego po prototypie psa......Page 615
Krok drugi: zmiana instancji psa w prototyp psa pokazowego......Page 616
Czas na uzupełnienie prototypu......Page 617
Tworzenie instancji psa pokazowego......Page 618
Próba generalna dla psów pokazowych......Page 619
Analiza wyników ćwiczenia......Page 621
Ostateczne porządki w kodzie psów pokazowych......Page 622
Kolejne porządki......Page 623
Analiza wywołania Dog.call......Page 624
Ostateczna próba przed pokazem......Page 625
Łańcuch prototypów nie kończy się na psie......Page 627
Wykorzystanie dziedziczenia na swoją korzyść… Przesłonięcie domyślnych metod......Page 628
Stosowanie dziedziczenia do własnych celów… Rozszerzanie wbudowanych obiektów......Page 630
Jazda próbna w poszukiwaniu zwrotów......Page 631
Poprawa jakości życia dzięki zastosowaniu obiektów......Page 632
Co dalej?......Page 633
Dodatek A. Pozostałości. 10 najważniejszych zagadnień (których nie opisaliśmy)......Page 643
1. jQuery......Page 644
2. Więcej operacji na DOM......Page 646
3. Obiekt window......Page 647
4. Obiekt arguments......Page 648
5. Obsługa wyjątków......Page 649
6. Dodawanie procedur obsługi zdarzeń przy użyciu metody addEventListener......Page 650
7. Wyrażenia regularne......Page 652
8. Rekurencja......Page 654
9. JSON......Page 656
10. JavaScript po stronie serwera......Page 657
Skorowidz......Page 661