od Podstaw
10 godz. 55 min · JavaScript · Full-stack i Programowanie
Piotr PalarzWeb DeveloperJeśli poznałeś już wymienione wyżej technologie, to zapewne zdajesz sobie sprawę z ich ograniczeń. Za pomocą języka HTML tworzymy bowiem strukturę dokumentu, dodajemy treść tekstową, obrazy czy wideo. Aby jednak strona internetowa wyglądała perfekcyjnie, korzystamy z arkuszy stylów CSS, które pozwalają nam opisać wygląd wszystkich elementów HTML, ustawić wielkość tekstu czy dodać tło strony. No właśnie, ale gdzie tutaj interakcyjność?Zapewne już wiesz, że język CSS oferuje tzw. pseudoklasy, które pozwalają nam np. przypisać zmianę koloru elementu po najechaniu na niego kursorem myszy. I to tak naprawdę wszystko, na co możemy zareagować. A co gdybyśmy chcieli po wciśnięciu jakiegoś przycisku wysunąć ukryty panel, sprawdzić poprawność wypełnianego właśnie formularza lub pobrać dane z serwera i wyświetlić je na stronie bez przeładowywania witryny? Dobra wiadomość jest taka, że to wszystko jest możliwe z użyciem języka JavaScript, który “rozumie” każda przeglądarka internetowa.Choć język JavaScript powstał jako język skryptowy na potrzeby stron internetowych, to już dawno temu “wyszedł” z przeglądarek internetowych i może być używany tak naprawdę gdziekolwiek. W kursie, który masz przed sobą, poznasz język JavaScript jako niezależny język programowania, a dopiero później dowiesz się, jak wykorzystywać go do wzbogacania stron internetowych. Dzięki postawieniu grubej linii pomiędzy samym językiem, a Obiektowym Modelem Dokumentu dostępnym w przeglądarkach internetowych, będziesz nie tylko bardzo dobrze rozumiał sam język, ale w przyszłości wykorzystasz go do innych zastosowań.Na początku omówimy ciekawą historię języka JavaScript, a chwilę później rozpoczniemy poznawanie najważniejszych jego konstrukcji. I tak dowiesz się czym są zmienne, jakie typy danych dostępne są w tym języku, czym są liczne operatory, instrukcje warunkowe, pętle, tablice, obiekty i funkcje. Wszystkie te zagadnienia są bardzo podobne w innych językach programowania, dlatego kurs ten jest również świetnym wstępem do programowania w ogóle. Każda z przedstawianych konstrukcji języka jest bardzo dokładnie tłumaczona z myślą osobach początkujących. Nie zmienia to jednak faktu, że nawet osoby znające już podstawy języka JavaScript znajdą tutaj coś dla siebie, gdyż na każdym etapie przedstawiane są również liczne ciekawostki odnośnie danej konstrukcji.Kiedy zrozumiesz już jak działa język JavaScript, przejdziemy do drugiej połowy kursu, gdzie dokładnie omówimy Obiektowy Model Dokumentu, dostępny w przeglądarkach internetowych. Zobaczysz jak przeglądarka tworzy z kodu HTML drzewo dokumentu, jak reprezentowane są poszczególne jego węzły, a także jak język JavaScript potrafi z tym “wewnętrznym światem” współpracować. Dowiesz się jak wyszukiwać na stronie interesujących nas elementów HTML, a także jak tworzyć nowe elementy, przypisywać im treść i wstawiać je na stronę. Popracujemy również z atrybutami elementów, ich klasami i wreszcie ze stylami CSS, abyśmy mogli wpływać dynamicznie na wygląd naszej strony.Zobaczysz również, jak możemy w dowolnym momencie odczytać współrzędne położenia elementu na stronie, a także jego wysokość czy szerokość. Tę wiedzę wykorzystamy później w praktycznym przykładzie.Jeden z rozdziałów kursu poświęcony został zdarzeniom, a więc możliwości reagowania na zachowania użytkownika. Dzięki temu zobaczysz, jak możemy przypisać np. zdarzenie kliknięcia do wybranego elementu, a kiedy zostanie on kliknięty, wykona się przygotowany przez nas kod. Poznasz kilka różnych sposobów na przypisywanie oraz usuwanie zdarzeń, a także dowiesz się czym jest tzw. “bubbling” oraz “capturing” czy jak zablokować domyślną akcję przeglądarki.Przy pisaniu jakiegokolwiek kodu, zawsze pojawiają się błędy, dlatego i tutaj Twoje wątpliwości nie pozostaną bez odpowiedzi. Poznasz wszystkie typu błędów, które mogą się pojawić podczas wykonywania naszego kodu, a także wiele sposobów ich wykrycia i wyeliminowania.W kursie nie brakuje oczywiście praktycznych przykładów, które celowo zostały ułożone tak, aby wykorzystać w nich jak najwięcej zdobytej wcześniej wiedzy. Nie zostaniesz więc sam z poczuciem, że co prawda rozumiesz jak działa dana konstrukcja, ale nie masz pomysłu, kiedy z niej skorzystać. Na początek wykonamy praktyczny projekt losowania liczb z wybranego przedziału tak, aby nie mogły się powtórzyć. Już przy tym projekcie poznasz wiele ciekawych technik i sztuczek.Następnie przejdziemy do nieco bardziej zaawansowanego przykładu i napiszemy skrypt, który pozwoli nam sortować dane w tabeli po wybranych kolumnach, kiedy któraś z nich zostanie kliknięta. Zobaczysz jak sortować dane zarówno malejąco jak i rosnąco, a także jak zmieniać kolejność elementów HTML na stronie.W kolejnym projekcie zajmiemy się walidacją danych wpisywanych do formularza, by ten nie mógł zostać wysłany do serwera tak długo, jak zawiera jakiekolwiek błędy. Zobaczysz tutaj zdarzenia związane z polami formularza, a także sposoby na pobieranie z nich wartości i sprawdzanie czy są one poprawne. Zadbamy także o wrażenia użytkownika i wyświetlimy na stronie stosowne błędy, a także podświetlimy źle uzupełnione pola na czerwono.W przedostatnim projekcie wstawimy na stronę przycisk, który będzie się pojawiał po przewinięciu strony w dół, a znikał po odwrotnej akcji. Co jednak ciekawe, po jego kliknięciu, strona zostanie automatycznie, płynnie przewinięta do samej góry.W ostatnim projekcie stworzymy bardzo efektowny dymek z podpowiedzią, który będzie się pojawiał nad elementem po najechaniu na niego kursorem myszy. Wykorzystamy tutaj mnóstwo ciekawych technik. Dowiesz się również jak swój kod przygotować w taki sposób, abyś mógł go udostępnić innym osobom, by w łatwy sposób skorzystały z przygotowanego Tooltipa na swoich stronach.Kurs kończy się sekcją Tips & Tricks, w której znajdziesz 10 krótkich lekcji. W każdej z nich została omówiona jedna sztuczka. Każda z nich pozwoli Ci jeszcze lepiej zrozumieć język JavaScript, ale przede wszystkim zaoszczędzić czas i kilka linijek często niepotrzebnego kodu.Podsumowując, kurs ten jest nie tylko wprowadzeniem do samego języka JavaScript, ale także do Obiektowego Modelu Dokumentu. Dzięki wyraźnemu rozdzieleniu tych dwóch zagadnień, będziesz mógł w przyszłości wykorzystać język JavaScript także do innych zastosowań, poza przeglądarką internetową.
Kurs ten jest dla wszystkich osób, które znają już podstawy HTML i CSS i chciałyby przejść poziom wyżej i dodać do swoich stron dynamiczności. Żadna wcześniejsza wiedza z zakresu JavaScript czy programowania nie jest wymagana, gdyż wszystkie konstrukcje są starannie tłumaczone. Materiał ten będzie również świetnym odświeżeniem i usystematyzowaniem wiedzy dla osób, które już z tym językiem miały do czynienia. Po przerobieniu tego kursu będziesz gotowy, by poznawać język JavaScript dalej, z kursem JavaScript w Praktyce, który powstał jako dopełnienie tego kursu i porusza nieco bardziej zaawansowane tematy, na które tutaj zabrakło już czasu.
Jeżeli dobrnąłeś do tego momentu kursu i przerobiłeś skrupulatnie wszystkie przykłady, razem ze mną, to
jestem przekonany, że już bardzo dobrze rozumiesz język JavaScript, ale także wiesz gdzie ten język JavaScript
oddziela się od przeglądarki internetowej, czyli od DOM API i co za jego pomocą możemy w przeglądarce
internetowej zrobić.
Być może twoje aspiracje do nauki języka JavaScript były takie, że chciałeś po prostu dodać do swojej
strony kilka jakichś interaktywności.
I na tym chciałbyś swoją naukę zakończyć.
Ja jednak mam nadzieję, że ten język spodobał ci się na tyle, że chciałbyś kontynuować swoją naukę i dalej
poznawać bardzo ciekawy język JavaScript, a także różne API dostępne w przeglądarkach internetowych.
Jeżeli tak jest, chciałbym ci teraz powiedzieć, co dalej, bo to pytanie pojawia się na każdym etapie nauki,
kiedy chcielibyśmy przejść dalej.
Czego powinieneś się nauczyć dalej i gdzie sięgnąć po odpowiednią wiedzę?
Chciałabym ci teraz pokazać.
Kurs JavaScript od podstaw, który teraz oglądasz przygotowywałem równolegle z drugim kursem JavaScript
w praktyce.
I te kursy ukazały się tego samego dnia.
Dlatego właśnie oba te kursy przygotowałem w ten sposób, aby się dopełniały.
Bardzo serdecznie zachęcam cię, jeżeli tylko chcesz pogłębić swoją wiedzę i jeszcze lepiej zrozumieć język
JavaScript, do tego abyś przeszedł do kursu JavaScript w praktyce.
W kursie, który teraz masz przed sobą, przygotowaliśmy kilka naprawdę ciekawych przykładów.
Podobnie jest w kursie JavaScript w praktyce.
Natomiast jeżeli chcesz JavaScript wykorzystać, aby tworzyć naprawdę bardzo ciekawe aplikacje
w przeglądarkach internetowych, to zachęcam Cię serdecznie do kursu mojego autorstwa HTML5 i JavaScript.
Techniki zaawansowane.
Niech tutaj nie zmyli cię nazwa techniki zaawansowane, dlatego że już po tym kursie, jesteś w stanie spokojnie
przejść do kursu HTML5 i JavaScript.
Techniki zaawansowane natomiast, polecam zrobić to dopiero po kursie JavaScript w praktyce. We wspomnianym
kursie HTML 5, przerabiamy takie ciekawe przykłady jak np. geolokalizacja, Canvas, audio, wideo, a także
takie protokoły komunikacji jak np. websockets.
Naprawdę są to bardzo ekscytujące technologie, które działają w przeglądarkach internetowych. W tym kursie
pokazałem ci jak możemy korzystać z różnych metod obiektów w drzewie DOM.
Jak możemy odczytywać np. szerokości jakiegoś elementu div.
Jak możemy przypisywać klasy, style itd.
Natomiast często robimy to za pomocą wyspecjalizowanych do tego bibliotek, napisanych na bazie tego, co
już wiesz, a więc tak jak byśmy wzięli to co już wiemy i na bazie tych różnych metod dostępnych w DOM API
napisali własne funkcje.
I tak właśnie działa biblioteka jQuery, z której niesłychanie często się korzysta, tworząc strony czy
aplikacje internetowe.
Dlatego polecam ci w tej kolejności poznanie biblioteki jQuery, a więc najpierw zrozumienie czym jest
JavaScript, jak działa DOM API, a później sięgnięcie po bibliotekę jQuery i na eduweb.pl.
Mamy kurs pod tytułem czy jQuary w praktyce, który w momencie kiedy wypowiadam te słowa jest dostępny.
Natomiast trwają również prace nad kolejną edycją tego kursu, który niedługo się ukaże
i ja również będę jego autorem.
Dlatego w tym momencie, kiedy słuchasz mnie teraz, być może jest już dostępne na eduweb.pl
nowy Kurs jQuery w praktyce i bardzo serdecznie zachęcam Cię, abyś po niego sięgnął. A więc tak jak wspomniałem najpierw
najlepiej zrozumieć język JavaScript i DOM API, a później sięgnąć po jQuery, bo jQuery Bożej gwar nie jest językiem.
Jest to tylko biblioteka napisana w JavaScript'cie, która mnóstwo ciekawych funkcji nam udostępnia,
aby łatwiej było nam pracować m.in. z drzewem DOM.
Oprócz kursów na eduweb.pl prowadzimy regularnie również warsztaty. Ja również wiele warsztatów na temat JavaScriptu
już przeprowadziłem oraz planuje kolejne, więc tam również będziesz mógł poszerzyć swoją wiedzę i warsztaty
znajdziesz pod adresem eduweb.pl/warsztaty.
Gdybyś chciał wyszukać, na przykład, wszystkiego co jest związane z JavaScript'em, to polecam ci jeszcze jeden adres
eduweb.pl/wyszukiwarka
Tam mamy bardzo fajną wyszukiwarkę za pomocą której na pewno znajdziesz interesujące Cię
materiały.
I na koniec, co jest niesłychanie ważne.
Praktyka.
Musisz zacząć praktykować, a więc eksperymentować.
Te przykłady, które w tym kursie i w innych kursach przerabiamy, próbować przerobić po swojemu, dopisać
do nich coś nowego, zmodyfikować je, a także napisać wiele własnych.
Kiedy będziesz ćwiczył, nauczysz się naprawdę bardzo wiele. Na tym etapie jeszcze jedno pytanie może pojawić
się w twojej głowie.
Otóż czego ci nie powiedziałem.
Czego jeszcze w tym kursie nie umówiłem.
Czy o mówiłem cały język JavaScript i cały DOM API, czy też nie.
Otóż język JavaScript jest jeszcze trochę bardziej zaawansowany i ma pewne konstrukcje, których w tym
kursie nie umówiłem, bo musiałby on trwać co najmniej 20 godzin.
Dlatego właśnie powstał kurs JavaScript w praktyce, w którym omawiam dodatkowe bardzo ważne konstrukcje
języka JavaScript, takie jak programowanie obiektowe czy dziedziczenie prototypowe.
To znajdziesz w drugim kursie i są to rzeczy niesłychanie ważne, aby bardzo dobrze rozumieć język JavaScript.
Dlatego jeżeli jesteś zaciekawiony tym językiem, to koniecznie musisz poznać również tę koncepcję.
W tym kursie nie omówiliśmy również AJAX'a, więc możliwości wysyłania zapytań do serwera bez przeładowywania
witryny,
jest to dla nas przeglądarkach również dostępne i bardzo dokładnie mówię o tym w kursie JavaScript w praktyce,
gdzie mamy cały rozdział poświęcony
AJAX'owi. W jednej z lekcji tego kursu wspominałem ci o wyrażeniach regularnych, czyli obiekcie RegExp,
Natomiast ich nie omawialiśmy i ja również omawiam, bardzo dokładnie, w kursie JavaScript w praktyce
i dlatego tak bardzo cię do niego zachęcam, abyś jeszcze więcej mógł się dowiedzieć na temat języka JavaScript.
Jeżeli chodzi o DOM API, to pokazałem ci naprawdę większość tego, co jest ci potrzebne aby pracować z
przeglądarką, a więc wyszukiwanie elementów, przypisywanie im atrybutów, przypisywanie klas, styli CSS czy
np. tworzenie nowych elementów itd.
Natomiast to nie jest wszystko, DOM API cały czas ewoluuje zmienia się i mamy coraz więcej
nowych API dostępnych w przeglądarkach.
Dlatego również nie o wszystkich powiedziałem w tym kursie, bo nie byłoby to możliwe.
Z tego powodu zachęcam cie właśnie do kursu HTML5 i JavaScript techniki zaawansowane.
Kilkanaście naprawdę ciekawych API omawiam.
Kolejna istotna rzecz, otóż w tym kursie mówiliśmy o specyfikacji ECMAScript5, natomiast być może słyszałeś
o ECMAScript 6
i mogłeś sobie pomyśleć, że kurs który właśnie oglądasz jest przestarzały.
Otóż zupełnie tak nie jest.
Natomiast faktycznie powstała specyfikacja ECMAScript6 i w połowie 2015 roku nowy standard ES6 został opublikowany.
Liczne konstrukcje tego standardu są już od jakiegoś czasu wspierane w różnych przeglądarkach internetowych,
natomiast nie wszystkie z nich. Jeśli chodzi o ecmaECMAScript 6,to nie tylko nowe możliwości zostały dodane
do języka JavaScript, ale także nowe konstrukcje, więc widziałeś w tym kursie syntax z języka JavaScript, a więc
nawiasy okrągłe, nawiasy kwadratowe, kadrowe średniki, dwie kropki itd.
Jeżeli zerknie się w internecie na kod ECMAScript 6, to część z tych zapisów jest inna i może nie wyglądać
do końca jak język Javascript, natomiast pytanie czy ECMAScript5, którego właśnie się nauczyłeś jest
przestarzały.
Tak nie jest dlatego, że nigdy nie jest tak że z dnia na dzień przechodzimy na nowy standard i jest on
całkowicie nowy i nie ma nic wspólnego z poprzednim a więc
ECMAScript 6
jest to ewolucja ECMAScript 5, chociaż bardzo wiele nowych możliwości tam się pojawia.
To, że nie będziesz rozumiał JavaScriptu, w ogóle.
Tak jak tłumaczyłem to w tym kursie, to tak czy siak, nie zrozumiesz nowości w ECMAScript 6, a więc najpierw
musisz wiedzieć to wszystko, co w tym kursie starałem się przekazać, a potem możesz sięgnąć po dodatkowe
możliwości, które pojawiają się w każdym kolejnym standardzie.
Co jeszcze jest ważne w przypadku ECMAScript 6.
Otóż tam pojawiło się bardzo wiele konstrukcji, o które domagali się zawodowi programiści, a więc osoby
które bardzo dobrze rozumieją programowanie obiektowe, na przykład w innych językach programowania i
chcieli to samo mieć w JavaScript'cie.
Czyli to że coś takiego powstało, nie oznacza że jest to bardzo łatwe do przyswojenia.
Dlatego polecam Ci najpierw przerobić kurs JavaScript w praktyce. Potem trochę poćwiczyć i ewentualnie
dopiero później, sięgnąć po tematy związane z
ECMAScript 6.
I możesz już dzisiaj powoli zacząć w swoich aplikacjach z nich korzystać.
Ja w momencie kiedy wypowiadam te słowa, planuję przygotować warsztat o nowościach w ECMAScript 6, który
będzie nieco bardziej zaawansowany i pojawi się on na eduweb.pl.
W sekcji warsztatów pod adresem eduweb.pl/warsztaty
więc być może w momencie kiedy ten kurs oglądasz, taki warsztat już się tam znajduje, a więc
polecam abyś spróbował go wyszukać. Na sam koniec, jeszcze jedna ważna sprawa, otóż gdybyś miał problemy
z nauką, czegoś nie rozumiał lub chciał poprosić o poradę możesz skorzystać z naszego wsparcia pod adresem
eduweb.pl/support gdzie zarówno nasza społeczność eduweb'owa odpowiada na pytania jak i nasi eksperci.
Więc jeżeli coś cię nurtuje, to pytaj na eduweb.pl/support