Czasami chcemy, aby blok kodu został wykonany tylko w określonej sytuacji. Umożliwia nam to kontrola przepływu sterowania za pomocą instrukcji if-else.
Przykład 2.13. Sterowanie wykonaniem programu
var foo = true;
var bar = false;
if (bar) {
// ten kod nigdy nie zostanie wykonany
console.log('witaj!');
}
if (bar) {
// kod nie zostanie wykonany
} else {
if (foo) {
// kod zostanie wykonany
} else {
// kod zostanie wykonany jeśli zarówno foo i bar będą fałszywe
}
}
Rzeczy prawdziwe, rzeczy fałszywe
Aby umiejętnie sterować działaniem programu, należy wiedzieć, które wartości są prawdziwe, a które fałszywe. Zdarza się, że wartości, które pozornie wydają się fałszywe bądź prawdziwe zwracają przeciwną wartość.
Przykład 2.14. Wartości, które zwracają prawdę
'0';
'dowolny ciąg';
[]; // pusta tablica
{}; // pusty obiekt
1; // dowolna liczba różna od zera
Przykład 2.15. Wartości, które zwracają fałsz
0; ''; // pusty ciąg NaN; // zmienna, która nie jest typu liczbowego null; undefined; // uwaga – undefined może mieć zmienioną definicję!
Przypisanie warunkowe zmiennych za pomocą operatora trójargumentowego
Czasami chcemy przypisać zmiennej daną wartość w zależności od tego, czy został spełniony określony warunek. Możemy wówczas użyć instrukcji warunkowej if-else, lecz w wielu przypadkach znacznie wygodniejszym rozwiązaniem jest operator trójargumentowy. [Definicja: operator trójargumentowy sprawdza, czy został spełniony określony warunek; jeśli tak, zwracana jest odpowiednia wartość, jeśli nie — inna.]
Przykład 2.16. Operator trójargumentowy
// jeśli bar jest prawdziwe, niech foo równa się 1 // w przeciwnym wypadku niech foo będzie równe 0 var foo = bar ? 1 : 0;
Operatora trójargumentowego można używać bez przypisania zmiennej wartość zwrotnej, jednak lepiej tego nie robić.
Instrukcja switch
Czasami zamiast kilku bloków if/else-if/else wygodniej jest użyć instrukcji switch. [Definicja: instrukcja switch sprawdza wartość danego wyrażenia bądź zmiennej i wykonuje poszczególne bloki kodu zależnie od tej wartości.]
Przykład 2.17. Instrukcja switch
switch (foo) {
case 'bar':
alert('wartość bar – ojej!');
break;
case 'baz':
alert('buu baz :(');
break;
default:
alert('wszystko pozostałe może być');
break;
}
Instrukcja switch nie jest już zbyt chętnie wykorzystywana przez programistów JavaScript, ponieważ często do osiągnięcia tych samych rezultatów można wykorzystać obiekty. Są one wygodniejsze do ponownego użycia czy testów. Na przykład:
var coMamZrobic = {
'bar' : function() {
alert('wartość bar – ojej!');
},
'baz' : function() {
alert('buu baz :(');
},
'default' : function() {
alert('wszystko pozostałe może być');
}
};
if (coMamZrobic[foo]) {
coMamZrobic[foo]();
} else {
coMamZrobic['default']();
}
Obiektom przyjrzymy się bliżej w dalszej części rozdziału.



(głosów: 3, średnia ocena: 3,67)


Wysyłam...
Dodaj komentarz