⊗jsPmCdScpN 135 of 505 menu

Muutujate nähtavuspiirkonna nüansid if-else konstruktsioonides JavaScriptis

Muutujate nähtavuspiirkonnal on mõningaid nüansse. Vaatame seda näite abil. Lihtsalt deklareerime väljaspool meie tingimust muutuja res ühe väärtusega ja sees tingimuses muudame selle väärtuse teiseks:

let res = 1; if (true) { res = 2; } console.log(res); // väljastab 2

Nagu näete, muutus muutuja res tingimuse sees. Kõik aga muutub, kui tingimuse sees deklareerida ka muutuja res läbi let:

let res = 1; if (true) { let res = 2; // deklareerime muutuja läbi let } console.log(res); // väljastab 1, mitte 2!

Siin on asi selles, et muutuja deklareerimine läbi let tingimuse sees loob kohaliku muutuja res.

See tähendab, et tingimuse sees eksisteerib üks muutuja res ja väljaspool tingimust - teine. Sellest saab veenduda, väljastades muutuja väärtuse konsooli tingimuse sees:

let res = 1; if (true) { let res = 2; console.log(res); // väljastab 2 } console.log(res); // väljastab 1

Allpool toodud koodi autor tahtis teostada vanuse kontrolli, kas on saavutatud 18 aastat. Kood aga väljastab igal vanuse väärtusel konsooli väärtuse undefined. Parandage koodi autor vea. Siin on probleemne kood:

let age = 17; let adult; if (age >= 18) { let adult = true; } else { let adult = false; } console.log(adult);

Allpool toodud koodi autor tahtis teostada vanuse kontrolli, kas on saavutatud 18 aastat. Pärast koodi kontrollimist selgus, et kui vanus on võrdne või suurem kui 18 aastat, siis muutujasse adult kirjutatakse true, nagu peabki, kuid kui vanus on väiksem kui 18, siis muutuja adult omab väärtust undefined. Parandage koodi autor vea.

Siin on probleemne kood:

let age = 17; let adult; if (age >= 18) { adult = true; } else { let adult = false; } console.log(adult);

Allpool toodud koodi autor tahtis teostada vanuse kontrolli. Kood aga väljastab igal vanuse väärtusel konsooli väärtuse undefined. Parandage koodi autor viga.

Siin on probleemne kood:

let age = 17; let res; if (age >= 18) { if (age <= 23) { let res = '18 kuni 23'; } else { let res = 'üle 23'; } } else { let res = 'alla 18'; } console.log(res);

Allpool toodud koodi autor tahtis teostada vanuse kontrolli. Kood aga väljastab vanuse väärtusel suurem kui 18 aastat konsooli väärtuse undefined. Parandage koodi autor viga.

Siin on probleemne kood:

let age = 19; let res; if (age >= 18) { let res; if (age <= 23) { res = '18 kuni 23'; } else { res = 'üle 23'; } } else { res = 'alla 18'; } console.log(res);
Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu