reklama - zainteresowany?

Tajemnice JavaScriptu. Podręcznik ninja - Helion

Tajemnice JavaScriptu. Podręcznik ninja
ebook
Autor: John Resig, Bear Bibeault
Tytuł oryginału: Secrets of the JavaScript Ninja
TÅ‚umaczenie: Piotr Pilch
ISBN: 978-83-246-8507-3
stron: 432, Format: ebook
Data wydania: 2014-05-16
Księgarnia: Helion

Cena książki: 51,75 zł (poprzednio: 69,00 zł)
Oszczędzasz: 25% (-17,25 zł)

Dodaj do koszyka Tajemnice JavaScriptu. Podręcznik ninja

Tagi: JavaScript - Programowanie

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!


Dodaj do koszyka Tajemnice JavaScriptu. Podręcznik ninja

 

Osoby które kupowały "Tajemnice JavaScriptu. Podręcznik ninja", wybierały także:

  • D3.js w akcji
  • Tablice informatyczne. Node.js
  • React i GatsbyJS. Kurs video. Nowoczesne strony internetowe w oparciu o headless CMS i GraphQL
  • TypeScript i React. Kurs video. Tworzenie nowoczesnych komponent
  • Vue.js w praktyce. Kurs video. Poznaj narz

Dodaj do koszyka Tajemnice JavaScriptu. Podręcznik ninja

Spis treści

Tajemnice JavaScriptu. Podręcznik ninja eBook -- spis treści

Przedmowa (9)

Podziękowania (11)

O książce (13)

O autorach (19)

CZĘŚĆ I. PRZYGOTOWANIE DO TRENINGU (21)

Rozdział 1. Zostań wojownikiem (23)

  • 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)

Rozdział 2. Broń w postaci testowania i debugowania (33)

  • 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)

CZĘŚĆ II. TRENING UCZNIA (51)

Rozdział 3. Funkcje są najważniejsze (53)

  • 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)

Rozdział 4. Posługiwanie się funkcjami (87)

  • 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)

Rozdział 5. Zamknięcie się w domknięciach (119)

  • 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)

Rozdział 6. Obiektowość z prototypami (155)

  • 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)

Rozdział 7. Borykanie się z wyrażeniami regularnymi (193)

  • 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)

Rozdział 8. Wątki i liczniki czasu (219)

  • 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)

CZĘŚĆ III. TRENING WOJOWNIKA (237)

Rozdział 9. Alchemia wojownika. Analizowanie kodu w środowisku wykonawczym (239)

  • 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)

Rozdział 10. Instrukcje with (263)

  • 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)

Rozdział 11. Opracowywanie strategii obsługi wielu przeglądarek (277)

  • 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)

RozdziaÅ‚ 12. Atrybuty, wÅ‚aÅ›ciwoÅ›ci i arkusze stylów CSS (305)

  • 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)

CZĘŚĆ IV. TRENING MISTRZA (343)

Rozdział 13. Radzenie sobie ze zdarzeniami (345)

  • 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)

Rozdział 14. Modyfikowanie modelu DOM (393)

  • 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)

RozdziaÅ‚ 15. Mechanizmy selektorów CSS (411)

  • 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)

Skorowidz (429)

Dodaj do koszyka Tajemnice JavaScriptu. Podręcznik ninja

Code, Publish & WebDesing by CATALIST.com.pl



(c) 2005-2024 CATALIST agencja interaktywna, znaki firmowe należą do wydawnictwa Helion S.A.