někdy musíme provádět různé akce na základě různých podmínek.
můžeme použít if
prohlášení a podmíněný operátor ?
, který je také nazýván „otazník“ operátora.
„if“
if(...)
prohlášení hodnotí stav v závorkách, a pokud výsledek je true
, provede blok kódu.,
například:
let year = prompt('In which year was ECMAScript-2015 specification published?', '');if (year == 2015) alert( 'You are right!' );
V příkladu výše, podmínka je jednoduchá rovnost check (year == 2015
), ale to může být mnohem složitější.,
Pokud chceme provést více než jeden příkaz, musíme zabalit náš blok kódu uvnitř složených závorek:
if (year == 2015) { alert( "That's correct!" ); alert( "You're so smart!" );}
doporučujeme balící kód bloku pomocí složených závorek {}
pokaždé, když používáte if
prohlášení, i když je tam jen jeden příkaz spustit. Tím se zlepšuje čitelnost.
booleovská konverze
příkazif (…)
vyhodnotí výraz ve svých závorkách a převede výsledek na boolean.,
připomeneme si pravidla přechodu z kapitoly Typ Konverze:
- počet
0
, prázdný řetězec""
null
undefined
, aNaN
false
. Z tohoto důvodu se nazývají“ falsy “ hodnoty. - jiné hodnoty se stávají
true
, takže se nazývají „truthy“.,
kód za tohoto stavu by se nikdy spustit:
if (0) { // 0 is falsy ...}
…a v tomto stavu – je to vždy budou:
if (1) { // 1 is truthy ...}
můžeme také projít pre-hodnotí logickou hodnotu na if
, jako je tento:
let cond = (year == 2015); // equality evaluates to true or falseif (cond) { ...}
„ostatní“ ustanovení
if
prohlášení může obsahovat volitelný „ostatní“ blok. Provádí se, když je podmínka falsy.,
například:
Několik podmínek: „else if“
Někdy jsme chtěli vyzkoušet několik variant stavu. Klauzule else if
nám to umožňuje.
například:
ve výše uvedeném kódu JavaScript nejprve zkontroluje year < 2015
. Pokud je to falsy, přejde do další podmínky year > 2015
. Pokud je to také falsy, zobrazuje poslední alert
.
může být víceelse if
bloků. Konečná else
je volitelná.
podmíněný operátor „?,“
někdy musíme přiřadit proměnnou v závislosti na stavu.
například:
operátor tzv. „podmíněného“ nebo „otazníku“ nám to umožňuje kratším a jednodušším způsobem.
operátor je reprezentován otazníkem ?
. Někdy se nazývá „ternary“, protože operátor má tři operandy. Je to vlastně jeden a jediný operátor v JavaScriptu, který má tolik.,
syntaxe je:
let result = condition ? value1 : value2;
condition
je hodnocen: pokud je pravdivý pak value1
je vrácena, jinak – value2
.
například:
let accessAllowed = (age > 18) ? true : false;
Technicky vzato, můžeme vynechat kulaté závorky kolem age > 18
. Operátor otazníku má nízkou prioritu, takže se provádí po porovnání >
.,
tento příklad udělá totéž jako předchozí:
ale závorky činí kód čitelnějším, proto doporučujeme použít.
V příkladu výše, se můžete vyhnout pomocí otazník provozovatel protože srovnání sám se vrací true/false
:
// the samelet accessAllowed = age > 18;
Více ‚?‘
posloupnost otazník operátory ?
může vrátit hodnotu, která závisí na více než jednom stavu.,
například:
let age = prompt('age?', 18);let message = (age < 3) ? 'Hi, baby!' : (age < 18) ? 'Hello!' : (age < 100) ? 'Greetings!' : 'What an unusual age!';alert( message );
To může být obtížné na první, aby se pochopit, co se děje. Ale po bližším pohledu, můžeme vidět, že je to jen obyčejná sekvence testů:
Zde je, jak to vypadá pomocí 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!';}
Non-tradiční použití ‚?,‘
Někdy otazník ?
se používá jako náhrada za if
:
let company = prompt('Which company created JavaScript?', '');(company == 'Netscape') ? alert('Right!') : alert('Wrong.');
v Závislosti na stavu company == 'Netscape'
, buď první, nebo druhý výraz, po ?
dostane popraven a ukazuje upozornění.
nepřidělujeme výsledek proměnné zde. Místo toho spustíme jiný kód v závislosti na stavu.
tímto způsobem se nedoporučuje používat operátora otazníku.,
zápis je kratší než ekvivalentif
, který apeluje na některé programátory. Ale je méně čitelný.
Tady je stejný kód pomocí if
pro srovnání:
let company = prompt('Which company created JavaScript?', '');if (company == 'Netscape') { alert('Right!');} else { alert('Wrong.');}
Naše oči skenovat kód vertikálně. Kódové bloky, které pokrývají několik řádků, jsou snadněji pochopitelné než dlouhá, horizontální instrukční sada.,
účelem operátora otazníku ?
je vrátit jednu nebo druhou hodnotu v závislosti na jejím stavu. Použijte ji pro přesně to. Použijte if
, když potřebujete provést různé větve kódu.
Leave a Reply