Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00620 009581 7511925 na godz. na dobę w sumie
Tajniki języka JavaScript. Na drodze do biegłości - ebook/pdf
Tajniki języka JavaScript. Na drodze do biegłości - ebook/pdf
Autor: Liczba stron: 96
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-283-2184-7 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> webmasterstwo >> javascript - programowanie
Porównaj ceny (książka, ebook (-20%), audiobook).
Początkujący programista może bardzo szybko zacząć tworzyć proste aplikacje w JavaScript. Jednak ten, kto chce osiągnąć prawdziwą biegłość w tym języku, musi opanować trudniejsze zagadnienia, na przykład asynchroniczność czy techniki związane z wydajnością w JavaScript, takie jak obietnice, generatory i wątki robocze. Powinien nie tylko umieć napisać kod, który działa, ale także bardzo dokładnie rozumieć, dlaczego i w jaki sposób działa. Okazuje się, że w przypadku JavaScript bardzo często nie jest to ani proste, ani oczywiste.

Niniejsza książka jest pierwszą częścią serii w całości poświęconej temu językowi. Autor skupia się na trudniejszych aspektach języka JavaScript, dogłębnie je analizuje, a następnie przedstawia praktyczne zastosowanie opisanych koncepcji. Książka jest przeznaczona dla osób dopiero rozpoczynających przygodę z programowaniem. Omówiono w niej istotniejsze koncepcje programowania i podano głębokie podstawy języka JavaScript. Jednym zdaniem, książka ta umożliwia na bardzo wysokim poziomie zrozumienie i przyswojenie najważniejszych zasad rządzących tym językiem.

Dzięki tej książce:

Pamiętaj, Twój kod jest Twoim dziełem!

Znajdź podobne książki

Darmowy fragment publikacji:

Tytuł oryginału: You Don t Know JS: Up Going Tłumaczenie: Robert Górczyński ISBN: 978-83-283-2173-1 © 2016 Helion SA. Authorized Polish translation of the English edition of You Don t Know JS: Up Going ISBN 9781491924464 © 2015 Getify Solutions, Inc. This translation is published and sold by permission of O’Reilly Media, Inc., which owns or controls all rights to publish and sell the same. All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from the Publisher. Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji. Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Wydawnictwo HELION ul. Kościuszki 1c, 44-100 GLIWICE tel. 32 231 22 19, 32 230 98 63 e-mail: helion@helion.pl WWW: http://helion.pl (księgarnia internetowa, katalog książek) Drogi Czytelniku! Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie/tjndro Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję. Printed in Poland. • Kup książkę • Poleć książkę • Oceń książkę • Księgarnia internetowa • Lubię to! » Nasza społeczność Spis treści Przedmowa ........................................................................................ 5 Wprowadzenie ................................................................................... 7 1. Wprowadzenie do programowania ................................................... 13 14 15 16 20 22 25 27 30 31 33 35 39 41 Kod Wyrażenia Wypróbuj samodzielnie Operatory Wartości i typy Komentarze w kodzie Zmienne Bloki Konstrukcje warunkowe Pętle Funkcje Praktyka Podsumowanie 3 Poleć książkęKup książkę 2. Wstęp do programowania w JavaScript .............................................43 44 55 58 60 62 67 69 70 75 76 Wartości i typy Zmienne Konstrukcje warunkowe Tryb ścisły Funkcje jako wartości Identyfikator this Prototypy Stare i nowe Wykraczamy poza JavaScript Podsumowanie 3. O serii TJJS ........................................................................................77 78 78 80 81 83 84 Zakresy i domknięcia Wskaźnik this i prototypy obiektów Typy i składnia Asynchroniczność i wydajność ES6 Beyond Podsumowanie A Podziękowania .................................................................................85 Skorowidz ........................................................................................89 4 (cid:95) Spis treści Poleć książkęKup książkę ROZDZIAŁ 2. Wstęp do programowania w JavaScript W poprzednim rozdziale przedstawiłem podstawowe elementy konstrukcyjne stosowane w programowaniu, czyli zmienne, pętle, konstrukcje warunkowe i funkcje. Oczywiście cały prezentowany kod został utworzony w języku Java- Script. W tym rozdziale chcę się skoncentrować na rzeczach, które musisz wiedzieć o JavaScript, jeśli zamierzasz stać się programistą korzystającym z tego języka. Zaprezentuję kilka koncepcji, które dokładnie będą wyjaśnione w kolejnych książkach z tej serii. Potraktuj ten rozdział jako ogólne przedstawienie tematów, których szczegółowe omówienie znajdziesz w pozostałej części serii. Jeżeli dopiero zaczynasz przygodę z językiem JavaScript, to będziesz musiał po- święcić niemało czasu na wielokrotne przeanalizowanie przedstawionych tutaj koncepcji i fragmentów kodu. Każdy dobry fundament jest kładziony cegła po cegle, a więc nie oczekuj, że od razu wszystko będzie zrozumiałe. W tym miejscu rozpoczynasz podróż, której celem jest dokładne poznanie języka JavaScript. Jak wspomniałem w rozdziale 1., podczas lektury zdecydowanie powinieneś samodzielnie wypróbowywać kod przedstawiony w książce. Pamiętaj, że w niektórych fragmentach kodu przyjąłem dostępność funkcjonalności wprowadzonej w najnowszych (gdy powstawała ta książka) wersjach JavaScript (najczęściej można spotkać określenie „ES6” dla szóstego wydania ECMAScript — to oficjalna nazwa specyfikacji JavaScript). Jeżeli używasz starszej wersji przeglądarki internetowej, opracowanej przed wydaniem ES6, przedstawiony w książce kod może nie działać. W takim przypadku warto zastosować najnowszą wersję jednej z najważ- niejszych przeglądarek, takich jak Chrome, Firefox lub IE. 43 Poleć książkęKup książkę Wartości i typy Jak już wspomniałem w rozdziale 1., JavaScript stosuje typy dla wartości, a nie dla zmiennych. Dostępne są następujące wbudowane typy danych: (cid:120) string (cid:120) number (cid:120) boolean (cid:120) null i undefined (cid:120) object (cid:120) symbol (nowość w ES6) JavaScript oferuje operator typeof, który może przeanalizować wartość i podać jego typ: var a; typeof a; // undefined a = Witaj, (cid:258)wiecie! ; typeof a; // string a = 42; typeof a; // number a = true; typeof a; // boolean a = null; typeof a; // object -- Dziwne, błąd. a = undefined; typeof a; // undefined a = { b: c }; typeof a; // object Wartość zwrotna operatora typeof to zawsze jedna z sześciu (siedmiu w spe- cyfikacji ES6) wartości w postaci ciągu tekstowego. Oznacza to, że wynikiem wywołania typeof abc jest string , a nie string. Zwróć uwagę, że w powyższym fragmencie kodu zmienna a przechowuje war- tości różnych typów. Pomimo wydania polecenia typeof a nie sprawdzamy „typu a”, ale „typ wartości aktualnie przechowywanej w a”. W języku JavaScript tylko wartości mają przypisany typ; zmienne są po prostu kontenerami prze- znaczonymi dla tych wartości. 44 (cid:95) Rozdział 2. Wstęp do programowania w JavaScript Poleć książkęKup książkę Interesującym przypadkiem jest typeof null, ponieważ otrzymujemy wartość zwrotną object zamiast oczekiwanej null . To znany od dawna błąd w języku JavaScript, ale nie został dotąd usunięty. Ponieważ duża ilość kodu w internecie opiera swoje działanie na tym błędzie, więc jego usunięcie wprowa- dziłoby jeszcze więcej błędów! Zwróć również uwagę na a = undefined. Zmiennej a wyraźnie przypisujemy wartość undefined, ale tak naprawdę nie różni się to od sytuacji, gdy zmienna w ogóle nie ma przypisanej wartości, czyli jak w wierszu var a; na początku omawianego fragmentu kodu. Zmienna może przejść do stanu „niezdefinio- wanego” na wiele różnych sposobów, między innymi na skutek działania funkcji, która nie zwraca wartości, i przez użycie operatora void. Obiekty Typ Object odnosi się do wartości złożonej, gdzie można przypisać zbiór wła- ściwości (nazwanych lokalizacji), z których każda będzie przechowywała własne wartości dowolnego typu. To prawdopodobnie jeden z najużyteczniejszych typów wartości w całym języku JavaScript: var obj = { a: Witaj, (cid:258)wiecie! , b: 42, c: true }; obj.a; // Witaj, świecie! obj.b; // 42 obj.c; // Prawda obj[ a ]; // Witaj, świecie! obj[ b ]; // 42 obj[ c ]; // Prawda Pomocne może być graficzne przedstawienie wartości obj, jak na rysunku 2.1. Rysunek 2.1. Graficzne przedstawienie obiektu obj Wartości i typy (cid:95) 45 Poleć książkęKup książkę Dostęp do właściwości może odbywać się za pomocą składni z użyciem kropki (na przykład obj.a) lub też składni z użyciem nawiasu (na przykład obj[ a ]). Składnia z użyciem kropki jest krótsza i generalnie łatwiejsza w odczycie, dlatego też jest preferowana, o ile to tylko możliwe. Z kolei składnia z użyciem nawiasu okazuje się przydatna, gdy nazwy właści- wości zawierają znaki specjalne, takie jak obj[ Witaj, (cid:258)wiecie! ] — w kon- tekście omawianej składni tego rodzaju właściwości są najczęściej określane mianem kluczy. Notacja [ ] wymaga zmiennej (wyjaśnię to później) lub literału w postaci ciągu tekstowego (konieczne jest jego opakowanie w .. lub .. ). Oczywiście składnia z użyciem nawiasu jest przydatna, jeśli chcesz uzyskać dostęp do właściwości lub klucza, gdy nazwa jest przechowywana w innej zmiennej, na przykład: var obj = { a: Witaj, (cid:258)wiecie! , b: 42 }; var b = a ; obj[b]; // Witaj, świecie! obj[ b ]; // 42 Więcej informacji na temat obiektów w JavaScript znajdziesz w książce Wskaźnik this i prototypy obiektów z tej serii, w szcze- gólności w rozdziale 3. Mamy jeszcze kilka innych typów wartości często stosowanych w programach JavaScript: tablice i funkcje. Jednak zamiast traktować je jako poprawne wbu- dowane typy, tablice i funkcje, można traktować je bardziej jak podtypy — specjalizowane wersje typu object. Tablice Tablica to obiekt przechowujący wartości (dowolnego typu) nie w nazwanych właściwościach lub kluczach, ale w liczbowo zindeksowanych pozycjach. Na przykład: var arr = [ Witaj, (cid:258)wiecie! , 42, true 46 (cid:95) Rozdział 2. Wstęp do programowania w JavaScript Poleć książkęKup książkę ]; arr[0]; // Witaj, świecie! arr[1]; // 42 arr[2]; // Prawda arr.length; // 3 typeof arr; // object W językach programowania, w których zaczynamy odliczanie od zera, na przykład w JavaScript, pierwszy element tablicy ma indeks 0. Na rysunku 2.2 przedstawiłem graficzną postać tablicy arr. Rysunek 2.2. Graficzne przedstawienie tablicy arr Ponieważ tablice są obiektami specjalnymi (jak wskazuje na to typeof), mogą mieć również właściwości. Przykładem jest właściwość length, która prze- chowuje automatycznie uaktualnianą wartość wskazującą wielkość tablicy. Teoretycznie tablicę można wykorzystać jak zwykły obiekt wraz z właściwo- ściami, ewentualnie można użyć zwykłego obiektu (object) i definiować w nim jedynie właściwości o nazwach liczbowych (0, 1 itd.), symulując w ten sposób tablicę. Jednak w takich przypadkach uznaje się, że doszło do niepra- widłowego użycia wymienionych typów. Najlepsze i najnaturalniejsze podejście polega na wykorzystaniu tablic do przechowywania wartości zindeksowanych liczbowo, natomiast obiektów — do przechowywania nazwanych właściwości. Funkcje Innym podtypem object często stosowanym w programach JavaScript jest funkcja: function foo() { return 42; } Wartości i typy (cid:95) 47 Poleć książkęKup książkę foo.bar = Witaj, (cid:258)wiecie! ; typeof foo; // function typeof foo(); // number typeof foo.bar; // string Jak możesz zobaczyć, funkcja jest podtypem object — operator typeof zwraca wartość function oznaczającą, że function jest typem głównym — a więc może mieć właściwości. Jednak właściwości obiektu funkcji (na przykład foo.bar) są używane sporadycznie. Więcej informacji na temat wartości JavaScript oraz ich ty- pów znajdziesz w pierwszych dwóch rozdziałach książki Typy i składnia z tej serii. Wbudowane metody typu Omówione dotąd typy i podtypy mają pewne zachowanie udostępnione w po- staci właściwości i metod, które są całkiem użyteczne i oferują bardzo duże możliwości. Na przykład: var a = Witaj, (cid:258)wiecie! ; var b = 3.14159; a.length; // 11 a.toUpperCase(); // WITAJ, ŚWIECIE! b.toFixed(4); // 3.1416 „Mechanizm” pozwalający na wywołanie a.toUpperCase() jest znacznie bar- dziej skomplikowany niż metoda istniejąca dla danej wartości. Pokrótce: mamy obiekt opakowujący String (nazwa rozpoczyna się od dużej litery S), zwykle nazywany „natywnym”, który tworzy parę wraz z typem pod- stawowym string. W swoim prototypie ten obiekt opakowujący definiuje metodę toUpperCase(). Kiedy używasz wartości typu podstawowego, takiej jak Witaj, (cid:258)wiecie! , jako obiektu przez odwołanie się do właściwości lub metody (na przykład toUpperCase() w powyższym fragmencie kodu), to JavaScript automatycznie „opakowuje” wartość obiektem opakowującym (ukrytym w tle). 48 (cid:95) Rozdział 2. Wstęp do programowania w JavaScript Poleć książkęKup książkę Skorowidz F formularz sieciowy, 18 funkcja, 18, 23, 37, 47 alert, 75 anonimowa, 62 argument, 36 deklarowanie, 62 jako wyrażenie, 62, 63 log, 18 nazwa, 55 nazwana, 62 Number, 24 Number.isNaN, 71 parametr, Patrz: funkcja argument prompt, 19 toFixed, 29 zasięg, 37 generator, 81, 82 G H hoisting, 55, 78 deklaracji funkcji, 56 zmiennej, 56 A API DOM, 75 ASM.js, 82 asynchroniczność, 81 B blok, 30 case, 59 błąd ReferenceError, 57 ciąg tekstowy, 23 C D dane, 18 delegacja, 70 DOM, 75 domknięcie, 64, 65, 66, 67 dziedziczenie, 79 E egzemplarz, 66 Eich Brendan, 7 89 Poleć książkęKup książkę I M mechanizm delegacji, 79 metoda, 48 getElementById, 75 toUpperCase, 48 model DOM, 75 moduł, 66 egzemplarz, Patrz: egzemplarz O obiekt, 23 Boolean, 49 Number, 49 opakowujący, 48 prototyp, 79 String, 49 obietnica, 81, 82 odwrócenie kontroli, Patrz: IoC operator, 14 *, 20 ? :, 60 =, 20 dekrementacji, 21 inkrementacji, 21 matematyczny, 21 nierówności, 52 logiczny, 22 luźnej, 22 porównania, 22 ścisłej, 22 przypisania, 21 równości, 51, 52, 53 luźnej, 22, 24 ścisłej, 22 typeof, 44, 48 void, 45 identyfikator, 55 IIFE, 63 immediately invoked function expression, Patrz: IIFE interpreter, 16, 26 inversion of control, Patrz: IoC IoC, 81 J JavaScript silnik, Patrz: silnik język interpretowany, 16, 78 programowania, 14 K klasa, 79 kod, 14 blok, Patrz: blok dokumentowanie, 26, 27 interpretacja, 16 kompilacja, 16 sekcja, 36 źródłowy, Patrz: kod koercja na boolean, 50 niejawna, 49 wyraźna, 49 komentarz jednowierszowy, 26 wielowierszowy, 26, 27 kompilacja, 25 kompilator, 16, 25, 26 konsola programistyczna, 16, 17 konstrukcja warunkowa, 31, 33, 58 L liczba, 23 literał, 23 90 (cid:95) Skorowidz Poleć książkęKup książkę P pętla, 33 do-while, 33, 34, 35 for, 35 while, 33, 34, 35 polecenie, 14 alert, 18 break, 34, 59 console.log, 18, 19 if, 31, 58 if-else, 32, 33, 58, 59 prompt, 20 switch, 33, 58, 60 use strict, 60 var, 28 yield, 81 polyfill, 71, 72 program, 14, 15 uruchamianie, 16 programowanie asynchroniczne, 81 prototyp, 69 przeglądarka internetowa, 16, 17, 71, 72, 73, 74, 75 R równoległość, 81 danych, 82 działania programu, 82 S Sharp Remy, 71 silnik, 78 SIMD, 82 składnia, 14, 72 z użyciem kropki, 46 nawiasu, 46 skrypt polyfill, Patrz: polyfill słowo kluczowe, 55 const, 30 this, 67, 68, 69, 78, 79 var, 21, 30, 55 słowo zarezerwowane, 55 stała, 29, 30 T tablica, 23, 46, 53 technika optymalizacji, 82 test wydajności, 82 transpiling, 72, 73, 74 tryb ścisły, 60, 61 typ, 23 boolean, 23, 44, 49 koercja, 24, 80 niejawna, 24 wyraźna, 24 konwersja, 24 null, 44, 45 number, 23, 24, 44, 49 object, 44, 45, 47, 53 string, 23, 24, 44, 49 symbol, 44 undefined, 44, 45 wymuszenie, 27 typowanie dynamiczne, 27, 28 słabe, 27 statyczne, 27, 30 W wartość boolowska, 23 NaN, 72 podstawowa, 23 porównywanie, 49 złożona, 45 Skorowidz (cid:95) 91 Poleć książkęKup książkę właściwość, 48 length, 47 nazwa, 55 współbieżność, 81 wyrażenie, 15 wywołanie zwrotne, 81, 82 wzorzec modułu, 66 projektowy, 79 zorientowany obiektowo, 67 Z zakres, 37, 55, 78 zagnieżdżony, 56 zmienna, 27 deklarowanie, 21, 55, 57 nazwa, 21, 38, 55 typ, 27, Patrz też: typ zakres, Patrz: zakres znak , 23 !=, 22, 51, 52 !==, 22, 51 , 23 , 22 ( ), 63 *, 20, 21 */, 26 *=, 21 ., 22 /, 21 /*, 26 /=, 21 ? :, 60 { }, 30 ||, 22 +, 21 ++, 21 +=, 21 , 22, 53 =, 22, 53 =, 20, 21 -=, 21 ==, 22, 24, 51, 52, 53 ===, 22, 51, 52, 53 , 22, 53 =, 22, 53 ASCII, Patrz: ASCII średnik, 14 Unicode, Patrz: Unicode 92 (cid:95) Skorowidz Poleć książkęKup książkę
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Tajniki języka JavaScript. Na drodze do biegłości
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: