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.
W tej lekcji powiem ci o inkrementacji oraz o
wartości zmiennych.
Temat bardzo istotny i w każdym języku programowania praktykowany.
Dlatego chciałbym Ci szybko pokazać jak to działa.
Stworzę odrazu w dwie zmienne number1 oraz number2. number1 będzie miał wartość 0, a po przecinku tworzę
kolejną number2 i przypisze wartość
5.
No i teraz wyobraź sobie, że stworzyliśmy sobie taką zmienną. Ja już Ci mówiłem, że zmienna nazywa się
variable, czyli zmienna.
Z tego powodu, że przypisujemy jakiejś wartości, po to, aby te wartości móc później zmieniać, aby nadpisywać
tę wartości.
I gdybyśmy teraz chcieli do tej zmiennej przypisać inną wartość, zwiększyć tę wartość o 1, to mówiłem
ci, że możemy napisać number równa się number1 plus 1.
Wiemy, że tutaj zostanie podstawione 0 plus 1 to jest 1 i na nowo zapisane w tej zmiennej.
Krócej moglibyśmy to zrobić w następujący sposób.
Plus równa się 1.
Wiesz, że wtedy zmienimy wartość tej zmiennej i dodamy do niej 1. Będzie to 1, ale mamy coś takiego również
jak inkrementacja, a więc zwiększenie wartości właśnie o 1.
Jeżeli początkowo mamy tutaj wartość 0 i chcielibyśmy wartość tej zmiennej zwiększyć o 1, to możemy to
zapisać w sposób następujący.
I teraz zmienimy wartość tejże zmiennej o 1,
poprzez te dwa plusy.
Tutaj nic nie dopisujemy, nic nie dodajemy, tak jak w przypadku dodawania.
I tutaj nie może być odstępu pomiędzy tym plusem, a nazwą zmiennej czyli dwa plusy,
jest to tzw. postinkrementacja.
I teraz, abyś zrozumiał, o co chodzi.
Bo ja to wyrażenie wstawię w console.log number++,
czyli mamy tutaj number 1, jest to 0.
Przejdźmy tutaj.
Jak widzisz, zostało nam wyświetlone 0.
No tak, ale powiedziałem ci, że my tę wartość zwiększyliśmy o 1,
więc bez odświeżenia teraz strony, odwołajmy się do number 1.
No i proszę bardzo, mamy tutaj wartość 1, czyli w przypadku użycia number++,
najpierw zwracamy tę wartość do funkcji console.log, a następnie zwiększamy ją o 1,
gdybyśmy znowu wykonali dokładnie to samo, zobaczmy, to mamy 0, 1,
a tutaj. jak się odwołamy do number1, okaże się że ma ono wartość 2.
Z tego będziemy korzystać w pętlach, o których dowiesz się z jednego z kolejnych rozdziałów.
Natomiast teraz pokażę ci drugą rzecz, mianowicie to.
To się nazywa postinkrementacja, czyli najpierw zwracamy wartość, a potem dodajemy do niej 1.
A możemy również zrobić preinkrementację, czyli najpierw dodać 1 i później dopiero, to wszystko zwrócić.
Sprawdźmy jak to będzie wyglądać.
Wpiszemy dwa plusy i następnie number1.
I dzieje się dokładnie rzecz ta sama, tylko że tutaj najpierw do tej zmiennej dodamy 1, a później dopiero
towszystko zwrócimy.
Może ja tę linijkę wykomentuję.
Wiemy, że tutaj było 0, dodajemy 1 i chcemy to wyświetlić i widzimy że tutaj jest wartość 1.
Ale gdybym wyświetlił number1,
dalej jest tutaj ta sama wartość.
kolejna rzecz jest to dekrementacja, czyli zmniejszanie i wygląda to dokładnie tak samo.
Sprawdźmy sobie console.log number2.
Wiemy, że mamy tutaj wartość 5.
Gdybym zapisał minus minus, to wyświetlimy 5 odejmiemy 1.
Sprawdźmy.
Odświeżam.
No i mamy błąd.
Jak widzisz, skorzystałem z nazwy zmiennej number5 i mamy informację, że taka zmienna nie jest zdefiniowana.
Mamy tutaj oczywiście number2, więc jest to błąd który w konsoli został wychwycony. Napiszmy raz jeszcze number2.
Odświeżmy.
No i mamy tutaj 5, a więc wyświetliliśmy 5, a potem odjęliśmy od tej wartości 1. Gdybym się
teraz odwołał do number2, to mamy tam czwórkę.
No i ostatnia rzecz jest to predekrementacja, czyli tak jak wyżej.
Działa to dokładnie w ten sam sposób, mogę to skopiować i możemy użyć.
Minus minus na początku takiej zmiennej.
Czyli w tym przypadku mamy 5, odejmiemy 1, czyli będzie to 4 i następnie to wyświetlimy.
Sprawdźmy.
Mamy tutaj czwórkę. No i gdybym się odwołał do number2, nadal jest tam 4.
Ale teraz bardzo ważna rzecz, którą musisz zapamiętać.
Nie korzystamy z takiego zapisu, wtedy kiedy chcemy wyświetlić np. liczbę o jeden mniejszą od tej przechowywanej
w zmiennej, bo wówczas zrobilibyśmy to w sposób następujący console.log np. number2 minus 1.
I teraz takie wyrażenie podstawi nam 5. 5 minus 1 równa się 4.
Sprawdźmy.
Zgadza się mamy 4, ale jeśli się odwołałem do number2, to tam nadal jest 5, a takie wyrażenia
jakie ci pokazywałem, czyli postinkrementacja,
preinkrementacja, postdekementacja i predekramentacja, to są takie trudne nazwy, te wyrażenia zmieniają nam rzeczywiście
wartość tej zmiennej, ale również tę wartość zwracają w tym przypadku odejmują 1
i zwracają w tym przypadku zwracają, a potem odejmują
1.
Na razie myślę, że rozumiesz, o co w tym chodzi, ale zastanawiasz się kiedy będziesz mógł z takich rzeczy
korzystać i pokażę ci później że w przypadku pętli, przyda nam się taki oto zapis. A kiedy korzystać z
preinkrementacji, a kiedy z postdekrementacji, czyli kiedy te plusy będą tutaj z tej strony,
a kiedy z tej, wyjdzie tak naprawdę w praktyce, kiedy zaczniesz
tworzyć swój kod JavaScript, ale także wiele przykładów zobaczysz już w tym kursie, a także w każdym innym
kursie
JavaScriptu, który jest dostępny na eduweb.pl, w którym wykonujemy masę bardzo praktycznych przykładów.
Inkrementacja i dekrementacja · 1 min
var number1 = 0,
number2 = 5;
// console.log(number1++);
console.log(++number1);
// console.log(number2--);
// console.log(--number2);
console.log(number2 - 1);