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.
Na początek odpowiedzmy sobie na pytanie, czym właściwie jest język JavaScript?
JavaScript jest to interpretowany skryptowy język programowania
i teraz mógłbyś zapytać, co to znaczy, że język ten jest językiem interpretowanym.
Otóż, wyobraź sobie, że mamy jakiś plik z kodem źródłowym JavaScriptu.
Kod źródłowy jest to taki kod, który my napisaliśmy i jest on w żaden sposób nie kompilowany czy nie
jest zmodyfikowany.
I taki plik bezpośrednio będzie przez interpreter, który znajduje się w przeglądarce internetowej, interpretowany
i po zinterpretowania tego kodu, kod ten zostanie wykonany, a my będziemy mogli zobaczyć jego rezultaty
na ekranie.
Może to być np. odtwarzające się wideo czy jakiś czat albo galeria zdjęć. W zależności od tego, co chcieliśmy
uzyskać za pomocą dostępu na stronie internetowej.
No właśnie i teraz odpowiadając na pytanie, gdzie jest używany język JavaScript? Najczęściej używany jest
on na stronach internetowych, natomiast nie jest to jego jedyne przeznaczenie,
o czym jeszcze powiem w jednej z kolejnych lekcji.
Być może zastanawiasz się również na co pozwala nam język JavaScript, w kontekście stron internetowych.
No i wyobraź sobie, że mamy przeglądarkę. Mamy stronę internetową, na której wyświetlone są dwie miniaturki
zdjęć i zakładam że znasz już HTML oraz CSS i zdajesz sobie sprawę, że możemy wyświetlić takie zdjęcia
np. w CSS, za pomocą hoover możemy po najechaniu na takie zdjęcie coś zrobić. Natomiast nie mamy możliwości,
aby w CSS przypisać jakieś zdarzenie - np. kliknięcia do jakiegoś elementu.
Więc, jeżeli chcemy, aby po kliknięciu na taką miniaturkę pojawiła się większa wersja tego zdjęcia, to
do takiego zadania już potrzebujemy języka JavaScript i możemy to zrobić
po kliknięciu na taką miniaturę, obok może pojawić się duża wersja tego zdjęcia.
Teraz chciałbym przedstawić jeszcze ogólnie co możemy za pomocą JavaScriptu robić na stronach internetowych
i z pomocą JavaScriptu, a także HTML5
możemy, na przykład, napisać odtwarzacz wideo lub audio.
Możemy stworzyć programy coś obliczające
I tak na przykład program Microsoft Excel ma swoją webową wersję, która korzysta z JavaScriptu. W tym
języku również możemy napisać edytory tekstu
i jeżeli kiedykolwiek korzystałeś z jakiegoś systemu CMS, gdzie możemy dodawać treść, to na pewno widziałeś
edytor, gdzie możemy pogrubiać tekst, stawiać tabelki itd.
i to również jest napisane w języku JavaScript.
Następnie możemy tworzyć czaty, a więc takie komunikatory, które pozwalają nam pisać z innymi użytkownikami.
W JavaScript'cie
możemy tworzyć wreszcie gry komputerowe, a także możemy tworzyć różne aplikacje, które będą korzystać
z chmury, a więc takie, które będą komunikować się z serwerem i pomiędzy nami, a serwerem przesyłać dane.
Teraz rzućmy okiem na ponad już dwudziestoletnią historię języka JavaScript.
Wszystko zaczęło się w roku 1995, kiedy to w maju w ciągu dziesięciu dni Brandan Eich napisał język
JavaScript. Początkowo ten nazywał się Mocha, a później jego nazwę zmieniono na LiveScript
i jeszcze w tym roku przybrano nazwę JavaScript i był to chwyt marketingowy, dlatego że wówczas popularnym
językiem stawał się język programowania Java i właśnie dlatego właśnie LiveScript nazwano JavaScript'em
po to aby kojarzył się z Javą i aby był lepiej rozreklamowany.
Natomiast te dwa języki - Java oraz JavaScript nie mają ze sobą prawie nic wspólnego.
Następnie mamy lata 96 i 97 i są to lata, w których powstały pierwsze standardy języka JavaScript i zostały
one stworzone przez organizację ECMA,
dlatego standard języka JavaScript tak naprawdę nazywa się ECMAScript.
Na tym właśnie standardzie, czyli ECMAScript bazuje jedna z implementacji, którą nazywamy JavaScript'em,
ale także np. język ActionScript, który wykorzystujemy przy pisaniu aplikacji we Flashu.
To również jest po części JavaScript, dlatego że oba wywodzą się ze standardu, jakim jest ECMAScript.
Następnie mamy rok 1995 i w czerwcu tego roku wydany został standard ECMAScript 2.
Następnie rok 1999 i grudzień. W tym miesiącu wydany został trzeci standard ECMAScript i do dzisiaj
ten standard jest wspierany przez największą liczbę przeglądarek internetowych.
Następnie mamy rok 2000 i w tym właśnie roku rozpoczęto prace nad standardem ECMAScript 4, który jednak
nigdy nie został ukończony. Przez kilka lat
nic szczególnego dla JavaScriptu się nie wydarzyło, aż do roku 2005, kiedy to możemy mówić o takim AJAX'owym
boomie,
a więc od tego momentu zaczęto korzystać z technologii
AJAX, o której będę mówił w drugiej części tego kursu.
Natomiast AJAX jest to technologia, która pozwala nam wysyłać dane do serwera i wysyłać zapytania do serwera, bez
przeładowania witryny.
Dzisiaj prawie każda strona internetowa czy aplikacja korzysta z AJAX'a.
I właśnie od 2005 roku, kiedy odkryto, że można w ten sposób z AJAX'a korzystać, JavaScript przestał być
uważany za język do zabawy, dlatego że wcześniej JavaScript był wykorzystywany np. do dodawania podającego
śniegu na stronach internetowych.
Od roku 2005 zaczęto pisać coraz bardziej poważne aplikacje z użyciem języka JavaScript.
Następnie rok 2006 również bardzo ważny dla świata JavaScriptu, bo w tym właśnie roku w sierpniu powstała
pierwsza wersja biblioteki jQuery i był to przełom w pracy z DOM, czyli z obiektowym modelem dokumentu,
o którym będziemy jeszcze mówić w tym kursie.
Kolejna data, jest to rok 2009.
W tym właśnie roku został wydany standard ECMAScript 5, który do dzisiaj jest standardem obowiązującym.
Również w roku 2009
powstało Node.js i jest to implementacja języka JavaScript poza przeglądarką, co daje nam ogromne
możliwości i będę o tym jeszcze mówił w jednej z kolejnych lekcji kursu.
Następnie rok 2011 i w tym roku wydana została poprawka do standardu ECMAScript 5 i nazywa się ona
ECMAScript 5.1
ECMAScript 5.1
ECMAScript 5.1
Następnie rok 2015 i tutaj w czerwcu tego roku nastąpiła ponowna rewolucja w języku JavaScript, bo wydana
została specyfikacja ECMAScript 6, która jest kontynuacją prac nad ECMAScript 4, które jak wspominałem
zostały porzucone.
Jeśli chodzi o ECMAScript 6, jeszcze pod koniec tego kursu wspomnę o tej specyfikacji. Co jest bardzo istotne,
to od roku 2009 do teraz, obserwujemy wysyp bardzo wielu API HTML5, a więc takich interfejsów, które pozwalają
na w przeglądarkach m.in. odtwarzać audio czy wideo, a także tworzyć gry komputerowe.
Korzystanie z wszystkich tych dobrodziejstw nie byłoby jednak możliwe, bez użycia języka JavaScript.
Zobaczyłeś właśnie Jaką drogę do tej pory przeszedł język Java Script.
Ja chcę ci tylko powiedzieć, że z języka który niewiele oferował, i który zawierał wiele błędów. JavaScript
stał się bardzo poważnym językiem, który napędza dzisiaj nowoczesne aplikacje oraz strony internetowe
i jest to jeden z najpopularniejszych języków programowania na świecie.