ternární operátory v JavaScriptu

už vás nebaví opakovat se při kódování? Stále používáte tradiční bloky „if…else“? Co kdybych vám řekl, můžete napsat 15 řádků kódu ve 4 řádcích? Volejte 1-800-TERNARY-operátory nyní.

ternární operátoři jsou zkrácenou verzí if … else prohlášení. Je to jediný podmíněný operátor v JavaScriptu, který má tři operandy.

Základní syntaxe pro ternární operátory je

podmínka ? výraz1 : výraz2

  • kde podmínka je hodnota, která bude testována/hodnoceno,
  • výraz1 může být hodnota(y) jakéhokoli druhu musí být proveden v případě, že podmínka je pravda
  • výraz2 může být hodnota(y) z jakéhokoli typu musí být provedeny, pokud výraz1 je falešné já.e záložní hodnota, běžně známý jako „jiného“
  • “ ? „znamená“ pokud “ a “ : „znamená „jiného“

Pojďme se podívat na příklad,

Pokud bychom měli určit, pokud je povoleno řídit podle jejich věkových kategorií, pomocí if…else — to vypadá nějak takhle.

var age = 18;if (age >= 16) {
alert("You're allowed to drive!");
}else {
alert("You should be 16 to drive!");
}// "You're allowed to drive!"

Pomocí ternární operátory, stejný kód bude vypadat takto

var age = 18;alert (age >= 16) ? "You're allowed to drive!" : "You should be 16 to drive!"// You're allowed to drive!

Voila! Tento blok kódu se překládá na pokud je proměnná “ věk “ větší nebo rovna 16, prohlížeč by měl upozornit „máte povoleno řídit!‘, Jinak ‚ byste měli být 16 řídit! měli byste být upozorněni!

dalším důvodem pro přijetí ternární, je to flexibilita a miniaturní velikost, která by se vešly kdekoli ve vašem kódu. Například, pokud chcete připojit výsledek řetězce přímo k řetězci, můžete to snadno udělat, aniž byste museli deklarovat svůj stav Samostatně.

var isMember = true;
'The fee is ' + (isMember ? '.00' : '.00'); // The fee is .00

pokud je isMember pravdivý, ‚poplatek je $ 2.00‘, jinak ‚poplatek je $ 10.00‘.

Hádej co?! Můžete také přiřadit výsledky ternárních operací proměnným. Použijme stejný příklad jízdy, jaký jsme použili dříve.

var age = 18;
var canDrive = (age >= 16) ? "You're allowed to drive!" : "You should be 16 to drive!";
console.log(canDrive); // "You're allowed to drive!"

V tomto příkladu jsme uložili do proměnné a později zobrazí v konzole.

v ternárních operátorech je to možné stejně jako v tradičním bloku if … else. Více ternární operátory mohou být spojeny dohromady tvořit to, co nazýváme ‚IF…ELSE IF…ELSE“ blok.

var year = prompt('Which year was the 2018 World Cup?', '');
alert(year < 2018) ? 'Too early' : (year > 2018) ? 'Too late' : 'Exactly!'; // Exactly!

blok kódu výše bude překládat v případě, že rok je méně než v roce 2018, prohlížeč by měl upozornit ‚Příliš brzy‘, nebo jinak, je-li rok je vyšší než v roce 2018, „Příliš pozdě“ se zobrazí, jinak pokud to není větší nebo menší než já.e rovná, pak ‚Přesně‘ se zobrazí.

můžete mít také vnořených funkcí když:

var statement1 = true;
var statement2 = true;var check = statement1 ? (statement2 ? "True, Yes!" : "True, False!") : 'False';console.log(check); // True, Yes!

Naše oči skenuje kódy vertikálně, což odsazení a mezery hrát velké role v nám pomáhá číst kódy snadno. Nejsou vyloučeny v ternary a volná místa neovlivňují váš kód.

var stop = false, age = 23;
age > 18 ? (
alert('OK, you can go.')
) : (
alert('Sorry, you are much too young!')
);

výše uvedený kód bude fungovat stejně dobře jako jakékoli ternární hodnocení nebo jakákoli operace if … else.

je také možné mít více operací na případ a oddělit je čárkou.

var stop = false, age = 23;
age > 18 ? (
alert('OK, you can go.'),
location.assign('continue.html')
) : (
stop = true,
alert('Sorry, you are much too young!')
);

můžete také provádět více operací a přiřadit hodnoty proměnné. Proměnné bude přiřazena poslední hodnota oddělená čárkami.

var age = 16;
var auth = age > 18 ? (
alert('OK, you can go.'),
// alert returns "undefined", but it will be ignored because
// isn't the last comma-separated value of the parenthesis
'APPROVED' // the value to be assigned if age > 18
) : (
alert('You are much too young!'),
alert('Sorry :-('),
// etc. etc.
'DISAPPROVE' // the value to be assigned if !(age > 18)
);
location.assign(auth); // "DISAPPROVE"

v neposlední řadě lze ternární operace použít k vrácení hodnot ve funkcích. Například, pokud bychom chtěli napsat funkci vrátit hodnotu k určení, zda Chris Pratt je členem Marvel Vesmíru nebo ne;

var marvel = true;function chrisPratt(marvel) {
if (marvel === true){
return "I am Star-Lord!";
}
else {
return "Have you watched Guardians of the Galaxy?";
}}
var output = chrisPratt(marvel);
console.log(output); // "I am Star-Lord!"

Všimněte si, že jsme použili vrátit vícekrát a musel psát, pokud…else prohlášení a vložte si jejich hodnoty ve složených závorkách atd, což je skvělé. Lze ji však zkrátit pomocí ternárních operátorů. Stejný kód výše bude hodnocen jako takový v ternární operaci;

var marvel = true;function chrisPratt(marvel) {
return (marvel === true) ? "I am Star-Lord!" : "Have you watched Guardians of the Galaxy?";
}
var output = chrisPratt(marvel);
console.log(output); // "I am Star-Lord!"

Poznámka: všechny proměnné používané v ternární operaci by měly být definovány před vytvořením operace.

pokud jste se dostali tak daleko, děkuji!

neváhejte a přidejte mě na Twitter a na Instagram

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.