Archiwa kategorii: Pracownia Aplikacji Internetowych

NIC PAI

Jak wygląda ogólny zapis instrukcji warunkowej JavaScript ?

Jak wygląda ogólny zapis instrukcji warunkowej JavaScript ?

Do stworzenia prostego skryptu wystarczy użyć kilku (lub więcej) instrukcji, które zostaną wykonane sekwencyjnie (jedna po drugiej), tak jak były zapisane. W praktyce jednak takie proste skrypty są rzadkością – zdecydowanie częściej w skrypcie trzeba wykonać (lub nie) dany fragment kodu w zależności od tego czy określony warunek będzie spełniony (lub też odwrotnie). Do tego celu właśnie służą instrukcje warunkowe, które omówię w tej części kursu.

Instrukcje warunkowe służą do decydowania który fragment kodu powinien zostać wykonany w zależności od spełnienia określonych warunków; inaczej mówiąc służą do rozgałęzienia ścieżki wykonywania skryptu.

Podstawową instrukcją warunkową jest instrukcja if. Wygląda ona następująco:

if (warunek)
    instrukcja;

Warunek jest to dowolne wyrażenie zwracające wartość logiczną (typ Boolean), lub wyrażenie które da się skonwertować na taki typ, czyli praktycznie wszystko. Instrukcja jest to natomiast dowolna instrukcja JavaScript.

Polecenie warunkowe if można zatem wykorzystać następująco:

if (a > 0)
    alert("a jest większe od zera");

Często zdarza się że zamiast pojedynczej instrukcji trzeba wykonać grupę instrukcji. Aby to zrobić, należy otoczyć je nawiasami klamrowymi { }:

if (a > 0)
{
    alert("a jest większe od zera");
    a = 0xCAFEBABE;
}

Zgrupowane w ten sposób instrukcje nazywa się także instrukcją złożoną.

Instrukcja if posiada także możliwość umieszczenia po słowie kluczowym else instrukcji (lub grupy instrukcji), która zostanie wykonana w przypadku gdy warunek nie będzie spełniony:

if (a == 0)
    alert("a jest równe zero");
else
    alert("a jest różne od zera");

W niektórych przypadkach trzeba sprawdzić kilka różnych warunków, i wykonać odpowiednie instrukcje dla każdego z nich, np. wyświetlić jaki jest znak liczby. W takim przypadku można instrukcję else umieścić bezpośrednio po if:

if (a == 0)
    alert("a jest równe zero");
else if (a > 0)
    alert("a jest większe od zera");
else
    alert("a jest mniejsze od zera");

Innym popularnym rozwiązaniem w skryptach JavaScript jest uzależnienie wykonywanych instrukcji od konkretnej wartości zmiennej lub parametru funkcji. Można to rozwiązać poprzez wielokrotne porównywanie zmiennej z kolejnymi wartościami:

if (a == 0)
    alert("a jest równe zero");
else if (a == 1)
    alert("a jest równe jeden");
else if (a == 2)
    alert("a jest równe dwa");
else if (a == 3)
    alert("a jest równe trzy");
else
    alert("a ma inną wartość");

Taka konstrukcja jest na tyle często używana, że doczekała się specjalnej instrukcji switch. Wewnątrz niej poszczególne wartości umieszczone powyżej w instrukcjach if podaje się po słowie kluczowym case. Jeżeli jest potrzeba wykonania instrukcji występujących w powyższym przykładnie po ostatnim else, należy je umieścić po słowie kluczowym default. Powyższy przykład wyglądał zatem będzie następująco z użyciem instrukcji switch:

switch (a) {
case 0:
    alert("a jest równe zero");
    break;
case 1:
    alert("a jest równe jeden");
    break;
case 2:
    alert("a jest równe dwa");
    break;
case 3:
    alert("a jest równe trzy");
    break;
default:
    alert("a ma inną wartość");
    break;
}

Po instrukcjach case i default można umieścić kilka instrukcji bez konieczności otaczania ich nawiasami klamrowymi { }.

Zwróć także uwagę na słowo kluczowe break umieszczone na końcu każdej z sekcji wewnątrz instrukcji switch. Instrukcja ta mówi w którym momencie ma zostać przerwane wykonywanie instrukcji switch. W przypadku gdyby jej nie było, wykonane byłyby także instrukcje z znajdującej się poniżej sekcji case (lub default). Zapomnienie o wstawieniubreak jest przyczyną błędów w skryptach, które niekiedy mogą być trudne do wykrycia. Dlatego wstawiaj zawsze tą instrukcję, a jeżeli masz sytuację że nie chcesz jej wstawiać, umieść komentarz że brak instrukcji break jest zamierzony:

switch (a) {
case 0:
    b += 2;
    // Wykonaj takze instrukcje ponizej
case 1:
    b *= 3;
    alert("b = " + b);
    break;
default:
    alert("Niepoprawna wartość a!");
    break;
}


slide_18


Źródło: http://www.poradnik-webmastera.com/kursy/javascript/instrukcje_warunkowe.php

Autor: Piotr Żurek


 

Jak wykorzystać operatory porównania w języku Java Script !?

Wszystkie operatory w tej grupie służą do porównania dwóch wartości. Wynikiem takiego porównania jest zawsze wartość logiczna (typ Boolean).

Pierwszym operatorem z tej grupy jest operator równości == (zwróć uwagę że są to dwa znaki równości. Użycie tylko jednego znaku równości jest poprawne składniowo i oznacza przypisanie zamiast porównania, i może prowadzić do trudnych do wykrycia błędów). Jeżeli porównywane wartości są różnych typów, język JavaScript wykona odpowiednie konwersje (takie jak przy dodawaniu, co opisałem powyżej).

 

1 === 1; // true
"1" === "1"; // true
1 === "1"; // false
1 === 2; // false
 
1 !== 1; // false
"1" !== "1"; // false
1 !== 2; // true
1 !== "1"; // ]


Źródło: http://www.poradnik-webmastera.com/kursy/javascript/operatory_porownania_i_relacyjne.php

Autor: Marta Kobierska

Jak tworzyć własne obiekty w JavaScript?

Javascript umożliwia tworzenie własnych obiektów. Początkowo może się wam wydawać, ze jest to nie za bardzo użyteczne (w końcu można większość rzeczy zrobić przy pomocy funkcji itp), ale gdy zaznajomicie się z obiektami na pewno zmienicie zdanie. Przede wszystkim obiekty dają nam ochronę danych. Dziwnie brzmi prawda? Na stronie nie raz tworzyłeś button. Każdy z nich ma np. metodęonclick, właściwość value itp. Nie ma żadnego konfliktu w skrypcie, mimo tego, że obiekty te mają metody i właściwości takie same jak ich „bracia”. Poza tym programowanie obiektowe jest najbardziej bliskie rzeczywistości. Zapraszam do lektury.

Tworzenie pojedynczego obiektu

Aby utworzyć nowy pojedynczy obiekt możemy skorzystamy z poniższej konstrukcji:

1
2
3
4
5
6
7
8
var obiekt_1 = {
    imie: "Marcin",
    wzrost: 184,
    wypisz : function() {
        alert(this.imie)
    }
}

Nasz obiekt już na starcie posiada dwie ustalone właściwości – imie i wzrost, oraz jedną metodę, która wypisuje jego imię. Metoda taka jest zwykłą funkcją utworzoną w konstrukcji obiektu. Dostęp do niej ma tylko ten obiekt. Dzięki temu realizujemy podstawową funkcję obiektowości – dostęp do właściwości i metod ma tylko dany obiekt.
Zwróć uwagę, że każda właściwość i metoda jest od następnej oddzielona przecinkiem (jest on wymagany).

Aby odwołać się do danego obiektu z jego wnętrza stosujemy instrukcję this. Dzięki temu możemy w łatwy sposób wywoływać z wnętrza inne metody danego obiektu lub korzystać z jego właściwości:

1
2
3
4
5
6
7
8
9
10
11
var obiekt_1 = {
    liczba: 100,
    kwadrat : function() {return this.liczba * this.liczba },
    wypisz : function() {
        alert(this.kwadrat())
    }
}
obiekt_1.liczba = 200;
obiekt_1.wypisz();

Gdy nasz obiekt już istnieje, możemy do niego dodawać nowe metody lub właściwości, tak samo jak to robimy normalnie dla obiektu window. Popatrz na kod:

1
2
3
4
5
6
7
8
x = 10;
//jest równoznaczne z
window.x = 10;
pisz = function() {...}
//jest równoznaczne z
window.pisz = function() {...}

Tak naprawdę deklarując zwykłe zmienne globalne i funkcje definiujemy po prostu właściwości i metody dla obiektu window. JS nie wymaga stosowania odwołania do window, więc praktycznie zawsze pomijamy to odwołanie.

Podobnie właściwości i metody możemy deklarować dla nowych obiektów:

1
2
3
4
5
6
7
8
9
10
11
12
13
var obiekt_1 = {
    imie: "Marcin",
    wzrost: 184,
    wypisz : function() {
        alert(this.imie)
    }
}
obiekt_1.waga = 73; //dodaliśmy nową właściwość
obiekt_1.wypisz = function() {alert('Wzrost: '+this.wzrost + ', waga: '+this.waga)} //dodaliśmy nową metodę
obiekt_1.wypisz();//zwróci Wzrost: 184, waga: 73

Opracowanie:  Norbert Bajzert

Źródło: http://kursjs.pl/kurs/obiekty.html