czasami musimy wykonywać różne czynności w różnych warunkach.
aby to zrobić, możemy użyć instrukcji if
I operatora warunkowego ?
, który jest również nazywany operatorem” znak zapytania”.
Instrukcja „if”
Instrukcjaif(...)
ocenia warunek w nawiasach i, jeśli wynikiem jesttrue
, wykonuje blok kodu.,
na przykład:
let year = prompt('In which year was ECMAScript-2015 specification published?', '');if (year == 2015) alert( 'You are right!' );
w powyższym przykładzie warunek jest prostym sprawdzeniem równości (year == 2015
), ale może to być znacznie bardziej złożone.,
jeśli chcemy wykonać więcej niż jedną instrukcję, musimy zawinąć nasz blok kodu w klamry:
if (year == 2015) { alert( "That's correct!" ); alert( "You're so smart!" );}
zalecamy zawinąć blok kodu klamrami{}
za każdym razem, gdy używasz if
Instrukcja, nawet jeśli do wykonania jest tylko jedna instrukcja. Poprawia to czytelność.
Konwersja logiczna
Instrukcjaif (…)
ocenia wyrażenie w nawiasach i konwertuje wynik na wartość logiczną.,
przypomnijmy reguły konwersji z konwersji typu rozdziału:
- liczba
0
, pusty łańcuch""
,null
,undefined
, orazNaN
wszystkie stają sięfalse
. Z tego powodu nazywane są wartościami „fałszywymi”. - inne wartości stają się
true
, więc są nazywane „prawdziwymi”.,
tak więc kod pod tym warunkiem nigdy nie zostanie wykonany:
if (0) { // 0 is falsy ...}
…i wewnątrz tego warunku zawsze będzie:
if (1) { // 1 is truthy ...}
możemy również przekazać wstępnie ocenioną wartość logiczną doif
, w następujący sposób:
let cond = (year == 2015); // equality evaluates to true or falseif (cond) { ...}
klauzula „else”
instrukcja if
może zawierać opcjonalny blok „else”. Wykonuje się, gdy warunek jest fałszywy.,
na przykład:
kilka warunków: „else if”
czasami chcielibyśmy przetestować kilka wariantów warunku. Klauzula else if
pozwala nam to zrobić.
na przykład:
w powyższym kodzie JavaScript najpierw sprawdza year < 2015
. Jeśli jest to falsy, przechodzi do następnego warunku year > 2015
. Jeśli jest to również falsy, pokazuje ostatnią alert
.
może być więcejelse if
bloków. Ostateczna else
jest opcjonalna.
operator warunkowy '?,'
czasami musimy przypisać zmienną w zależności od warunku.
na przykład:
tak zwany operator „warunkowy” lub „znak zapytania” pozwala nam to zrobić w krótszy i prostszy sposób.
operator jest reprezentowany przez znak zapytania ?
. Czasami nazywany jest „trójkowy”, ponieważ operator ma trzy operandy. Jest to w rzeczywistości jeden i jedyny operator w JavaScript, który ma tak wiele.,
składnia jest następująca:
let result = condition ? value1 : value2;
condition
jest oceniana: jeśli jest poprawna, zwracana jest value1
– value2
.
na przykład:
let accessAllowed = (age > 18) ? true : false;
technicznie możemy pominąć nawiasy wokół age > 18
. Operator znaku zapytania ma niski priorytet, więc wykonuje po porównaniu >
.,
Ten przykład zrobi to samo co poprzedni:
ale nawiasy sprawiają, że kod jest bardziej czytelny, więc zalecamy ich użycie.
w powyższym przykładzie można uniknąć użycia operatora znaku zapytania, ponieważ samo porównanie zwraca true/false
:
// the samelet accessAllowed = age > 18;
div>
multiple '?'
Sekwencja operatorów znaków zapytania?
może zwrócić wartość, która zależy od więcej niż jednego warunku.,
na przykład:
let age = prompt('age?', 18);let message = (age < 3) ? 'Hi, baby!' : (age < 18) ? 'Hello!' : (age < 100) ? 'Greetings!' : 'What an unusual age!';alert( message );
na początku może być trudno zrozumieć, co się dzieje. Ale po bliższym przyjrzeniu się możemy zobaczyć, że jest to zwykła Sekwencja testów:
oto jak to wygląda używając if..else
:
if (age < 3) { message = 'Hi, baby!';} else if (age < 18) { message = 'Hello!';} else if (age < 100) { message = 'Greetings!';} else { message = 'What an unusual age!';}
nietradycyjne użycie '?,”
czasami znak zapytania ?
jest używany jako zamiennik if
:
let company = prompt('Which company created JavaScript?', '');(company == 'Netscape') ? alert('Right!') : alert('Wrong.');
Leave a Reply