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""nullundefined, aNaNfalse. 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