Dane oryginału

Original edition copyright © 2019–2020 Getify Solutions, Inc. All rights reserved. Title of English-language original: You Don’t Know JS Yet. Get Started by Kyle Simpson, ISBN 978-1-64786-200-8. Polish-language edition © 2020 by Polish Scientific Publishers PWN Wydawnictwo Naukowe PWN Spółka Akcyjna. All Rights reserved.

Przekład Natalia Chounlamany-Turalska na zlecenie WITKOM Witold Sikorski

Projekt okładki polskiego wydania INT-MEDIA Dawid Mazur na podstawie oryginału

Wydawca Wioleta Szczygielska-Dybciak

Redaktor prowadzący Jolanta Kowalczuk

Redaktor Małgorzata Dąbkowska-Kowalik

Koordynator produkcji Anna Bączkowska

Zastrzeżonych nazw firm i produktów użyto w książce wyłącznie w celu identyfikacji.

Choć wydawca i autor działali w najlepszej wierze i starali się zapewnić poprawność informacji oraz instrukcji zawartych w tej książce, zrzekają się wszelkiej odpowiedzialności za błędy i przeoczenia, w tym jakiejkolwiek odpowiedzialności za szkody wynikłe z użycia tej książki bądź polegania na niej. Zamieszczone w tej książce informacje i instrukcje wykorzystujesz na własne ryzyko. Jeśli któryś z zawartych lub opisywanych przykładów kodu bądź technologii jest przedmiotem licencji open source lub własności intelektualnej osób trzecich, odpowiadasz za wykorzystywanie go zgodnie z tymi licencjami/prawami własności.

Getify Solutions, Inc.

Copyright © for the Polish edition by Wydawnictwo Naukowe PWN SA

Warszawa 2020

ISBN 978-83-01-21530-9

eBook został przygotowany na podstawie wydania papierowego z 2020 r., (wyd. I)

Warszawa 2020

Wydawnictwo Naukowe PWN SA

02-460 Warszawa, ul. Gottlieba Daimlera 2

tel. 22 69 54 321, faks 22 69 54 288

infolinia 801 33 33 88

e-mail: pwn@pwn.com.pl; reklama@pwn.pl

www.pwn.pl

Na początku chciałbym podziękować mojej żonie i dzieciom, których nieustanne wsparcie motywuje mnie do działania. Chciałbym również podziękować pierwszym pięciuset osobom, które wsparły na Kickstarterze mój projekt „You Don’t Know JS” (YDKJS, pierwsze wydanie)¹, a także setkom tysięcy osób, które kupiły i przeczytały te książki. Bez waszego wsparcia finansowego nie byłoby tego drugiego wydania. Dziękuję też pracownikowi pewnego ptasiego serwisu społecznościowego, który podczas rozmowy kwalifikacyjnej powiedział, że „nie znam JS wystarczająco dobrze”. To pomogło mi w znalezieniu nazwy dla tej serii książek.

Na swojej obecnej ścieżce kariery bardzo wiele zawdzięczam Marcowi Grabanskiemu i Frontend Masters. Wiele lat temu Marc dał mi szansę oraz okazję spróbowania sił w nauczaniu i gdyby nie to doświadczenie, nie zacząłbym pisać książek! Frontend Masters jest głównym sponsorem drugiego wydania YDKJS pod tytułem „You Don’t Know JS Yet” (JS, jakiego jeszcze nie znasz – JSJJNZ). Dziękuję Frontend Masters (i Marcowi).

Na zakończenie dziękuję mojemu redaktorowi Simonowi St. Laurent, który pomógł mi w napisaniu pierwszej serii YDKJS i był moim pierwszym redaktorem. Jego pomoc i wskazówki zrobiły na mnie ogromne wrażenie i odgrywały ważną rolę w kształtowaniu mnie jako pisarza. Dziękuję Ci Simonie za wskazywanie mi drogi i za ulepszanie tych książek, począwszy od tego pamiętnego spotkania wiele lat temu w Driskillu, podczas którego narodził się pomysł YDKJS, aż po dziś!

Frontend Masters (https://frontendmasters.com/) to główny sponsor drugiego wydania serii książek You Don’t Know JS (Tajniki języka JavaScript) pod tytułem You Don’t Know JS Yet (JS, jakiego jeszcze nie znasz).

Frontend Masters pomagają w doskonaleniu umiejętności za pomocą zaawansowanych, nowoczesnych kursów programistycznych w zakresie technologii frontendu, z materiałami wideo o najwyższej jakości dostępnej w Internecie. Oferują ponad 150 kursów do wyboru, zapewniając dostęp do wiedzy eksperckiej, która pozwoli ci osiągnąć dużo lepsze efekty w nauce, dlatego nie zwlekaj i zapisz się już dziś!

Biblioteka Frontend Masters zawiera wiele rewelacyjnych kursów, między innymi kursy Kyle’a (https://frontendmasters.com/teachers/kyle-simpson/), które są doskonałym uzupełnieniem dla tej serii książek. Wszystkie warte są uwagi, a w szczególności:

• Getting Started with JavaScript

• Deep JavaScript Foundations

• JavaScript: The Recent Parts

Spis treści

Przedmowa

Wstęp

Mocne i słabe strony

Tytuł?

Misja

Droga

Rozdział 1. Czym jest JavaScript?

O tej książce

O co chodzi z tą nazwą?

Specyfikacja języka

Wiele twarzy

Wstecz i w przód

Kwestia interpretacji

Ściśle mówiąc

Definicja

Rozdział 2. Badanie JS

Każdy plik jest programem

Wartości

Deklarowanie i użycie zmiennych

Funkcje

Porównania

Organizacja kodu w JS

W głąb króliczej nory

Rozdział 3. Podróż do korzeni JS

Iteracja

Domknięcie

Słowo kluczowe this

Prototypy

Pytanie „Dlaczego”

Rozdział 4. Szersza perspektywa

Filar 1: zakres i domknięcie

Filar 2: prototypy

Filar 3: typy i koercja

Z prądem

Po kolei

Dodatek A. Dalsza analiza

Wartości kontra odwołania

Tyle postaci funkcji

Warunkowe porównania z koercją

„Klasy” prototypowe

Dodatek B. Ćwicz, ćwicz, ćwicz!

Ćwiczenia z porównań

Ćwiczenia z domknięć

Ćwiczenia z prototypów

Sugerowane rozwiązania

Przypisy

Przedmowa

Gdy zobaczyłem tweet reklamujący kampanię crowdfundingową pierwszej serii książek zatytułowanej You Don’t Know JS, pomyślałem sobie: „Do diabła z tym Kylem Simpsonem. Oczywiście, że znam JavaScript!” Miałem już wtedy wieloletnie doświadczenie w pracy z JavaScriptem w wiodących firmach technologicznych, dlatego wydawało mi się, że mam prawo zlekceważyć to prowokacyjne twierdzenie.

Gdy kampania zbierania funduszy na opublikowanie książki zakończyła się sukcesem, zauważyłem, że ta seria wzbudziła entuzjazm wielu osób, dlatego postanowiłem dać jej szansę. Choćby po to, aby udowodnić wszystkim, że ja znam JavaScript. Gdy zagłębiłem się w lekturze, zdobywaniu informacji towarzyszyło mocne uczucie zaskoczenia, a może nawet pewna irytacja. Kyle ma talent do wygłaszania twierdzeń, które podważają mój punkt widzenia oraz zmuszają do myślenia i w końcu uznania jego racji (choć nigdy osobiście mu tego nie przyznam!).

Jak się okazało, nie znałem JavaScriptu. Nie wiedziałem, dlaczego stosowałem pewne wzorce. Nie wiedziałem, dlaczego w pewnych sytuacjach JavaScript działa tak, a nie inaczej. I nie znałem wielu niuansów językowych, które wydawało mi się, że już znam. Nie wiedziałem, jak wiele nie wiedziałem i to czyniło mnie gorszym programistą.

Właśnie tu leży ogromny potencjał tej serii książek. Są one kierowane nie tylko do osób rozpoczynających naukę języka (choć do nich także), lecz także do wszystkich programistów, którzy traktują swój zawód jak rzemiosło, chcą doskonale władać swoimi narzędziami, chcą opanować tajniki swojej profesji i chcą stosować najwłaściwsze metody rozwiązywania problemów.

Podziwiam to, że Kyle i jego praca nie ulegają aktualnym trendom w świecie programowania. Nie oznacza to, że Kyle nie zdaje sobie sprawy z tego, co dzieje się w społeczności, lecz że mimo to dąży do uzyskania jak najlepszych odpowiedzi na trafne pytania. To często stawia go w opozycji do najnowszych „najlepszych praktyk”, ale tego tak naprawdę potrzebujemy: punktu widzenia nieulegającego tymczasowym wpływom i odwołującego się do podstawowych prawd. Na tym właśnie polega sukces tej serii książek. Mimo upływu lat pierwsze wydanie You Don’t Know JS jest nadal aktualne! A ze względu na stale zmieniający się krajobraz technologii JavaScript, niewiele projektów opiera się próbie czasu.

A teraz porozmawiajmy o tej pierwszej książce: Na dobry początek. Być może rozważasz pominięcie jej, ponieważ uważasz, że początek masz już za sobą. Jednak warto ją przeczytać! Zdziwisz się, ile detali, niuansów i dziwactw kryje się w podstawowych elementach JavaScriptu. Warto opanować te podstawy przed przejściem do konstrukcji składniowych języka. Jest to doskonałe przygotowanie do biegłego opanowania języka JavaScript.

Dlatego zainwestuj w swoją przyszłość i przeczytaj tę książkę, zdobywając ukrytą w niej wiedzę. Te solidne podstawy przydadzą ci się dużo bardziej niż jakikolwiek framework. Frameworki pojawiają się i znikają, natomiast w języku JavaScript będziemy pisać jeszcze przez wiele lat. Zachowaj otwarty umysł i bądź gotowy na zakwestionowanie z góry przyjętych opinii.

Ponieważ prawdopodobnie, tak jak ja, przekonasz się, że nie znasz (jeszcze) JavaScriptu.

~~

Brian Holt

Starszy menedżer produktu

Visual Studio Code i Node.js na platformie Azure

Microsoft

Przypisy

¹ Seria książek Kyle’a Simpsona – zatytułowana Tajniki języka JavaScript – została opublikowana przez Wydawnictwo Helion (przyp. tłum.).