Tajemnice JavaScriptu. Podręcznik ninja (ebook)(audiobook)(audiobook)
- Autorzy:
- John Resig, Bear Bibeault
- Wydawnictwo:
- Helion
- Wydawnictwo:
- Helion
- Ocena:
- 4.2/6 Opinie: 16
- Stron:
- 432
- Druk:
- oprawa miękka
- 3w1 w pakiecie:
-
PDFePubMobi

Opis książki
Czytaj fragment
Najlepsze porady dla programistów JavaScript!
JavaScript to język programowania, który wymaga od programisty szerokiej wiedzy i dokładności. Chwila nieuwagi może spowodować poważne problemy, trudne do wykrycia. Jak sobie radzić w tym wymagającym środowisku? Jak zwinnie poruszać się pomiędzy zastawionymi pułapkami?
Na te i wiele innych pytań znajdziesz odpowiedź w tej książce. Dzięki niej będziesz zwinnie jak ninja przemykał pomiędzy niuansami języka JavaScript. W trakcie lektury poznasz dogłębnie najlepszą broń przeciw błędom — debuger oraz testy automatyczne. W kolejnych rozdziałach nauczysz się korzystać z potencjału funkcji oraz domknięć. W tej doskonałej książce znajdziesz również szerokie omówienie wyrażeń regularnych — tematu, który spędza programistom sen z oczu. Ponadto szczegółowo poznasz zasady programowania obiektowego w JavaScripcie, modyfikowania drzewa DOM, wsparcia dla różnych przeglądarek oraz obsługi zdarzeń. Książka ta zawiera praktyczne porady, które sprawdzą się w codziennej pracy z językiem JavaScript. Jest to obowiązkowa pozycja dla każdego programisty!
Dzięki tej książce:
- nauczysz się pisać testy automatyczne
- wykorzystasz wyrażenia regularne w JavaScripcie
- zmodyfikujesz drzewo DOM
- opanujesz niuanse języka JavaScript
Pisz kod JavaScript jak prawdziwy ninja!
JavaScript to język programowania, który wymaga od programisty szerokiej wiedzy i dokładności. Chwila nieuwagi może spowodować poważne problemy, trudne do wykrycia. Jak sobie radzić w tym wymagającym środowisku? Jak zwinnie poruszać się pomiędzy zastawionymi pułapkami?
Podobne produkty
-
Vue.js 2. Wprowadzenie dla profesjonalistów Vue.js 2. Wprowadzenie dla profesjonalistów
Adam Freeman
-
Superpamięć dla dzieci Superpamięć dla dzieci
Paulina Mechło, Roksana Kosmala
-
Biblia copywritingu Biblia copywritingu
Dariusz Puzyrkiewicz
-
Biblia copywritingu. Wydanie II poszerzone Biblia copywritingu. Wydanie II poszerzone
Dariusz Puzyrkiewicz
-
Czysty kod. Podręcznik dobrego programisty Czysty kod. Podręcznik dobrego programisty
Robert C. Martin
-
Baw się kodem! Twoja własna strona WWW. CoderDo... Baw się kodem! Twoja własna strona WWW. CoderDojo Nano
Clyde Hatter, CoderDojo
Szczegóły książki
- Tytuł oryginału:
- Secrets of the JavaScript Ninja
- Tłumaczenie:
- Piotr Pilch
- ISBN Książki drukowanej:
- 978-83-246-8504-2, 9788324685042
- Data wydania książki drukowanej:
- 2014-05-16
- ISBN Ebooka:
- 978-83-246-8507-3, 9788324685073
- Data wydania ebooka:
-
2014-05-16
Data wydania ebooka często jest dniem wprowadzenia tytułu do sprzedaży i może nie być równoznaczna z datą wydania książki papierowej. Dodatkowe informacje możesz znaleźć w darmowym fragmencie. Jeśli masz wątpliwości skontaktuj się z nami sklep@ebookpoint.pl.
- Format:
- 168x237
- Numer z katalogu:
- 17807
- Rozmiar pliku Pdf:
- 7.1MB
- Rozmiar pliku ePub:
- 6.1MB
- Rozmiar pliku Mobi:
- 6.1MB
- Pobierz przykładowy rozdział PDF
- Przykłady na ftp
Ebook zawiera materiały dodatkowe, które możesz pobrać z serwera FTP - link znajdziesz na stronie redakcyjnej.
Spis treści
- 1.1. Omawiane biblioteki języka JavaScript (24)
- 1.2. Język JavaScript (25)
- 1.3. Kwestie dotyczące obsługi wielu przeglądarek (26)
- 1.4. Najlepsze obecnie praktyki (30)
- 1.4.1. Najlepsze obecnie praktyki - testowanie (30)
- 1.4.2. Najlepsze obecnie praktyki - analizowanie wydajności (31)
- 1.5. Podsumowanie (32)
- 2.1. Debugowanie kodu (34)
- 2.1.1. Rejestrowanie (34)
- 2.1.2. Punkty wstrzymania (36)
- 2.2. Generowanie testu (38)
- 2.3. Środowiska testowania (40)
- 2.3.1. QUnit (43)
- 2.3.2. YUI Test (43)
- 2.3.3. JsUnit (43)
- 2.3.4. Nowsze środowiska testów jednostkowych (43)
- 2.4. Fundamenty pakietu testów (44)
- 2.4.1. Asercja (44)
- 2.4.2. Grupy testów (45)
- 2.4.3. Testowanie asynchroniczne (47)
- 2.5. Podsumowanie (49)
- 3.1. Na czym polega funkcyjność? (54)
- 3.1.1. Dlaczego ważna jest funkcyjna natura języka JavaScript? (55)
- 3.1.2. Sortowanie za pomocą komparatora (60)
- 3.2. Deklaracje (63)
- 3.2.1. Określanie zasięgu i funkcje (66)
- 3.3. Wywołania (71)
- 3.3.1. Od argumentów do parametrów funkcji (72)
- 3.3.2. Wywołanie funkcji jako funkcji (73)
- 3.3.3. Wywołanie funkcji jako metody (74)
- 3.3.4. Wywołanie funkcji jako konstruktora (77)
- 3.3.5. Wywołanie za pomocą metod apply() i call() (80)
- 3.4. Podsumowanie (84)
- 4.1. Funkcje anonimowe (88)
- 4.2. Rekurencja (90)
- 4.2.1. Rekurencja w funkcjach z nazwą (90)
- 4.2.2. Rekurencja z metodami (92)
- 4.2.3. Problem z podkradanym odwołaniem (93)
- 4.2.4. Wstawiane funkcje z nazwą (95)
- 4.2.5. Właściwość callee (97)
- 4.3. Używanie funkcji jako obiektów (98)
- 4.3.1. Przechowywanie funkcji (99)
- 4.3.2. Funkcje z automatycznym zapamiętywaniem (100)
- 4.3.3. Oszukiwanie metod tablicowych (103)
- 4.4. Listy argumentów o zmiennej długości (105)
- 4.4.1. Użycie metody apply() do dostarczania zmiennej argumentów (105)
- 4.4.2. Przeciążanie funkcji (107)
- 4.5. Sprawdzanie pod kątem funkcji (116)
- 4.6. Podsumowanie (118)
- 5.1. Sposób działania domknięć (120)
- 5.2. Praktyczne wykorzystanie domknięć (125)
- 5.2.1. Zmienne prywatne (125)
- 5.2.2. Wywołania zwrotne i liczniki czasu (127)
- 5.3. Powiązanie kontekstów funkcji (131)
- 5.4. Częściowe stosowanie funkcji (136)
- 5.5. Przesłanianie działania funkcji (139)
- 5.5.1. Zapamiętywanie (139)
- 5.5.2. Opakowanie funkcji (142)
- 5.6. Funkcje bezpośrednie (144)
- 5.6.1. Zasięg tymczasowy i zmienne prywatne (146)
- 5.6.2. Pętle (150)
- 5.6.3. Opakowywanie biblioteki (152)
- 5.7. Podsumowanie (153)
- 6.1. Tworzenie instancji i prototypy (156)
- 6.1.1. Tworzenie instancji obiektu (156)
- 6.1.2. Określanie typu obiektu za pośrednictwem konstruktorów (164)
- 6.1.3. Dziedziczenie i łańcuch prototypów (166)
- 6.1.4. Prototypy modelu DOM języka HTML (171)
- 6.2. Pułapki! (173)
- 6.2.1. Rozszerzanie obiektu (173)
- 6.2.2. Rozszerzanie liczby (175)
- 6.2.3. Używanie podklas dla wbudowanych obiektów (177)
- 6.2.4. Problemy z tworzeniem instancji (178)
- 6.3. Pisanie kodu bardziej zbliżonego do kodu z klasami (183)
- 6.3.1. Sprawdzanie pod kątem serializacji funkcji (186)
- 6.3.2. Inicjalizacja podklas (187)
- 6.3.3. Zachowywanie supermetod (188)
- 6.4. Podsumowanie (190)
- 7.1. Dlaczego wyrażenia regularne są tak ważne? (194)
- 7.2. Odświeżenie informacji o wyrażeniach regularnych (195)
- 7.2.1. Omówienie wyrażeń regularnych (195)
- 7.2.2. Wyrazy i operatory (197)
- 7.3. Kompilowanie wyrażeń regularnych (201)
- 7.4. Przechwytywanie pasujących segmentów (204)
- 7.4.1. Wykonywanie prostych przechwytywań (204)
- 7.4.2. Dopasowywanie za pomocą globalnych wyrażeń regularnych (205)
- 7.4.3. Przywoływanie przechwytywań (207)
- 7.4.4. Grupy bez przechwytywania (208)
- 7.5. Zastępowanie za pomocą funkcji (209)
- 7.6. Rozwiązywanie typowych problemów z wykorzystaniem wyrażeń regularnych (212)
- 7.6.1. Obcinanie łańcucha (212)
- 7.6.2. Dopasowywanie znaków nowego wiersza (214)
- 7.6.3. Unicode (215)
- 7.6.4. Znaki o zmienionym znaczeniu (216)
- 7.7. Podsumowanie (217)
- 8.1. Sposób działania liczników czasu i wątkowości (220)
- 8.1.1. Ustawianie i usuwanie liczników czasu (220)
- 8.1.2. Wykonywanie licznika czasu w obrębie wątku wykonywania (221)
- 8.1.3. Różnice między czasami oczekiwania i interwałami (223)
- 8.2. Minimalne opóźnienie licznika czasu i wiarygodność (225)
- 8.3. Radzenie sobie z przetwarzaniem kosztownym obliczeniowo (228)
- 8.4. Scentralizowane kontrolowanie liczników czasu (231)
- 8.5. Testowanie asynchroniczne (235)
- 8.6. Podsumowanie (236)
- 9.1. Mechanizmy analizy kodu (240)
- 9.1.1. Analizowanie za pomocą metody eval() (240)
- 9.1.2. Analizowanie za pośrednictwem konstruktora Function (243)
- 9.1.3. Analizowanie przy użyciu liczników czasu (244)
- 9.1.4. Analizowanie w zasięgu globalnym (244)
- 9.1.5. Bezpieczne analizowanie kodu (247)
- 9.2. "Dekompilacja" funkcji (248)
- 9.3. Analizowanie kodu w praktyce (251)
- 9.3.1. Przekształcanie łańcuchów JSON (251)
- 9.3.2. Importowanie kodu z przestrzenią nazw (253)
- 9.3.3. Kompresja i ukrywanie kodu JavaScript (254)
- 9.3.4. Dynamiczne przebudowywanie kodu (256)
- 9.3.5. Znaczniki skryptu zorientowanego aspektowo (257)
- 9.3.6. Metajęzyki i języki DSL (258)
- 9.4. Podsumowanie (262)
- 10.1. O co chodzi z instrukcją with? (264)
- 10.1.1. Przywoływanie właściwości w zasięgu instrukcji with (264)
- 10.1.2. Przypisania w zasięgu instrukcji with (266)
- 10.1.3. Kwestie dotyczące wydajności (268)
- 10.2. Rzeczywiste przykłady (270)
- 10.3. Importowanie kodu z przestrzenią nazw (272)
- 10.4. Testowanie (272)
- 10.5. Stosowanie szablonów z instrukcją with (273)
- 10.6. Podsumowanie (276)
- 11.1. Wybór przeglądarek do obsługi (278)
- 11.2. Pięć podstawowych kwestii programistycznych (279)
- 11.2.1. Błędy i różnice w przeglądarkach (281)
- 11.2.2. Poprawki błędów w przeglądarce (281)
- 11.2.3. Radzenie sobie z zewnętrznym kodem i znacznikami (283)
- 11.2.4. Brakujące funkcje (289)
- 11.2.5. Regresje (290)
- 11.3. Strategie implementowania (292)
- 11.3.1. Bezpieczne poprawki dla różnych przeglądarek (292)
- 11.3.2. Wykrywanie obiektu (294)
- 11.3.3. Symulacja funkcji (295)
- 11.4. Zmniejszanie liczby założeń (301)
- 11.5. Podsumowanie (303)
- 12.1. Atrybuty i właściwości modelu DOM (307)
- 12.1.1. Nazewnictwo w różnych przeglądarkach (308)
- 12.1.2. Ograniczenia dotyczące nazw (309)
- 12.1.3. Różnice między językami XML i HTML (310)
- 12.1.4. Działanie atrybutów niestandardowych (310)
- 12.1.5. Kwestie dotyczące wydajności (311)
- 12.2. Problemy z atrybutami w przypadku obsługi wielu przeglądarek (315)
- 12.2.1. Rozszerzanie nazwy (identyfikatora) modelu DOM (315)
- 12.2.2. Normalizacja adresu URL (317)
- 12.2.3. Atrybut style (318)
- 12.2.4. Atrybut type (319)
- 12.2.5. Problem z indeksem tabulacji (320)
- 12.2.6. Nazwy węzłów (321)
- 12.3. Problemy związane z atrybutami stylów (321)
- 12.3.1. Gdzie są moje style? (322)
- 12.3.2. Określanie nazw właściwości stylów (324)
- 12.3.3. Właściwość stylów float (326)
- 12.3.4. Konwersja wartości pikseli (326)
- 12.3.5. Określanie wysokości i szerokości (327)
- 12.3.6. Przenikanie nieprzezroczystości (332)
- 12.3.7. Poskromienie kolorowego koła (335)
- 12.4. Uzyskiwanie stylów obliczanych (338)
- 12.5. Podsumowanie (341)
- 13.1. Techniki wiązania zdarzeń i anulowania powiązań (346)
- 13.2. Obiekt Event (351)
- 13.3. Zarządzanie procedurami obsługi (355)
- 13.3.1. Scentralizowane przechowywanie powiązanych informacji (355)
- 13.3.2. Zarządzanie procedurami obsługi zdarzeń (358)
- 13.4. Wyzwalanie zdarzeń (369)
- 13.4.1. Zdarzenia niestandardowe (371)
- 13.5. Propagacja i delegowanie (375)
- 13.5.1. Delegowanie zdarzeń do elementu nadrzędnego (376)
- 13.5.2. Radzenie sobie z mankamentami przeglądarek (377)
- 13.6. Zdarzenie gotowości dokumentu (387)
- 13.7. Podsumowanie (389)
- 14.1. Umieszczanie kodu HTML w modelu DOM (394)
- 14.1.1. Przekształcanie kodu HTML w model DOM (396)
- 14.1.2. Wstawianie do dokumentu (399)
- 14.1.3. Wykonywanie skryptu (401)
- 14.2. Klonowanie elementów (403)
- 14.3. Usuwanie elementów (405)
- 14.4. Treść tekstowa (407)
- 14.4.1. Ustawianie tekstu (408)
- 14.4.2. Pobieranie tekstu (409)
- 14.5. Podsumowanie (410)
- 15.1. Interfejs API selektorów organizacji W3C (413)
- 15.2. Użycie języka XPath do znajdowania elementów (416)
- 15.3. Implementacja czystego modelu DOM (418)
- 15.3.1. Analizowanie selektora (421)
- 15.3.2. Znajdowanie elementów (422)
- 15.3.3. Filtrowanie zestawu (423)
- 15.3.4. Rekurencja i scalanie (424)
- 15.3.5. Wstępujący mechanizm selektorów (425)
- 15.4. Podsumowanie (427)
Przedmowa (9)
Podziękowania (11)
O książce (13)
O autorach (19)
CZĘŚĆ I. PRZYGOTOWANIE DO TRENINGU (21)
Rozdział 1. Zostań wojownikiem (23)
Rozdział 2. Broń w postaci testowania i debugowania (33)
CZĘŚĆ II. TRENING UCZNIA (51)
Rozdział 3. Funkcje są najważniejsze (53)
Rozdział 4. Posługiwanie się funkcjami (87)
Rozdział 5. Zamknięcie się w domknięciach (119)
Rozdział 6. Obiektowość z prototypami (155)
Rozdział 7. Borykanie się z wyrażeniami regularnymi (193)
Rozdział 8. Wątki i liczniki czasu (219)
CZĘŚĆ III. TRENING WOJOWNIKA (237)
Rozdział 9. Alchemia wojownika. Analizowanie kodu w środowisku wykonawczym (239)
Rozdział 10. Instrukcje with (263)
Rozdział 11. Opracowywanie strategii obsługi wielu przeglądarek (277)
Rozdział 12. Atrybuty, właściwości i arkusze stylów CSS (305)
CZĘŚĆ IV. TRENING MISTRZA (343)
Rozdział 13. Radzenie sobie ze zdarzeniami (345)
Rozdział 14. Modyfikowanie modelu DOM (393)
Rozdział 15. Mechanizmy selektorów CSS (411)
Skorowidz (429)
Oceny i opinie klientów (16)
(6)
(2)
(3)
(1)
(2)
(2)
6 oceniona przez: Jakub Szlenk, Programista 2017-07-09
6 oceniona przez: Michał Demut, Inżynier Informatyki 2014-09-24
6 oceniona przez: Paweł, programista 2014-05-16
6 oceniona przez: programista 2014-06-24
6 oceniona przez: 2014-06-28
6 oceniona przez: Kamil Hadas, Programista 2014-05-30
5 oceniona przez: 2015-01-02
5 oceniona przez: iv, 2014-06-08
4 oceniona przez: Agnieszka, programista .NET 2018-01-21
4 oceniona przez: Jacek Kowalski, początkujący programista 2014-05-22
4 oceniona przez: 2016-01-03
3 oceniona przez: Jakub, Programista 2017-01-28
2 oceniona przez: Marek Świeczko, programista 2014-08-16
2 oceniona przez: 2014-08-24
1 oceniona przez: Rafał, programista 2015-07-16
1 oceniona przez: 2014-08-31
więcej opinii