uneori, avem nevoie pentru a efectua diferite acțiuni bazate pe condiții diferite.pentru a face acest lucru, putem folosi declarația if
și operatorul condițional ?
, care se numește și operator „semn de întrebare”.
„dacă” declarație
if(...)
declarație evaluează o condiție în paranteze și, dacă rezultatul este true
, executa un bloc de cod.,
De exemplu:
let year = prompt('In which year was ECMAScript-2015 specification published?', '');if (year == 2015) alert( 'You are right!' );
În exemplul de mai sus, condiția este un simplu verifica egalitatea (year == 2015
), dar poate fi mult mai complex.,
Dacă vrem să execute mai mult de o declarație, trebuie să ne punem bloc de cod în interiorul acolade:
if (year == 2015) { alert( "That's correct!" ); alert( "You're so smart!" );}
vă recomandăm ambalaj codul bloc cu acolade {}
de fiecare dată când utilizați un if
declarație, chiar dacă există o singură declarație pentru a executa. Acest lucru îmbunătățește lizibilitatea.
conversie booleană
instrucțiuneaif (…)
evaluează expresia în paranteze și convertește rezultatul într-un boolean.,
Să ne amintim regulile de conversie de la capitolul Conversii de Tip:
- număr
0
, un șir gol""
,null
,undefined
, șiNaN
toate devinfalse
. Din acest motiv, ele sunt numite valori „falsy”. - alte valori devin
true
, deci sunt numite „truthy”.,
Deci, codul sub această condiție nu ar executa:
if (0) { // 0 is falsy ...}
…și în această condiție – întotdeauna va fi:
if (1) { // 1 is truthy ...}
putem trece, de asemenea, o pre-evaluate valoare booleană să if
, astfel:
let cond = (year == 2015); // equality evaluates to true or falseif (cond) { ...}
„altcineva” clauza
if
declarație poate conține, opțional, un „altceva” bloc. Se execută atunci când condiția este falsy.,
de exemplu:
mai multe condiții: „else if”
uneori, am dori să testăm mai multe variante ale unei afecțiuni. Clauza else if
ne permite să facem asta.
de exemplu:
în codul de mai sus, JavaScript verifică mai întâi year < 2015
. Dacă aceasta este falsă, trece la următoarea condiție year > 2015
. În cazul în care este, de asemenea, falsy, acesta arată ultimul alert
.
pot exista mai multe blocuri else if
. Final else
este opțională.
Operator condiționat”?,’
uneori, trebuie să atribuim o variabilă în funcție de o condiție.
de exemplu:
așa-numitul operator „condițional” sau „semn de întrebare” ne permite să facem acest lucru într-un mod mai scurt și mai simplu.
operatorul este reprezentat de un semn de întrebare ?
. Uneori se numește „ternar”, deoarece operatorul are trei operanzi. Este de fapt singurul operator din JavaScript care are atât de multe.,
sintaxa este:
let result = condition ? value1 : value2;
condition
este evaluată: dacă e sinceră atunci value1
este returnat, în caz contrar, – value2
.
De exemplu:
let accessAllowed = (age > 18) ? true : false;
din punct de vedere Tehnic, putem omite paranteze în jurul age > 18
. Operatorul semnului de întrebare are o prioritate scăzută, deci se execută după comparația >
.,acest exemplu va face același lucru ca cel precedent:
dar parantezele fac Codul mai lizibil, așa că vă recomandăm să le utilizați.
În exemplul de mai sus, puteți evita folosind semnul de întrebare operator pentru comparația în sine se întoarce true/false
:
// the samelet accessAllowed = age > 18;
mai Multe ‘?’
o secvență de operatori semn de întrebare ?
poate returna o valoare care depinde de mai multe condiții.,
De exemplu:
let age = prompt('age?', 18);let message = (age < 3) ? 'Hi, baby!' : (age < 18) ? 'Hello!' : (age < 100) ? 'Greetings!' : 'What an unusual age!';alert( message );
poate fi dificil la început să înțeleagă ce se întâmplă. Dar după o privire mai atentă, putem vedea că este doar o simplă secvență de teste:
Iată cum arată folosind 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ționale de utilizare a?,’
Uneori semn de întrebare ?
este folosit ca un înlocuitor pentru if
:
let company = prompt('Which company created JavaScript?', '');(company == 'Netscape') ? alert('Right!') : alert('Wrong.');
în Funcție de starea company == 'Netscape'
, prima sau a doua expresie după ?
executat și arată o alertă.
nu atribuim un rezultat unei variabile aici. În schimb, executăm cod diferit în funcție de condiție.
nu este recomandat să utilizați operatorul semnului de întrebare în acest fel.,
notația este mai scurtă decât echivalentulif
declarație, care face apel la unii programatori. Dar este mai puțin lizibil.
Aici este același cod, folosind if
pentru comparație:
let company = prompt('Which company created JavaScript?', '');if (company == 'Netscape') { alert('Right!');} else { alert('Wrong.');}
ochii Noștri scana codul vertical. Blocurile de cod care se întind pe mai multe linii sunt mai ușor de înțeles decât un set de instrucțiuni lung și orizontal.,scopul operatorului semnului de întrebare ?
este de a returna o valoare sau alta în funcție de starea sa. Vă rugăm să-l utilizați pentru exact asta. Utilizați if
când trebuie să executați diferite ramuri de cod.
Leave a Reply