⊗jsPmCdScpN 135 of 505 menu

Nuances do escopo de variáveis em construções if-else em JavaScript

O escopo de variáveis tem um certo nuance. Vamos examiná-lo com um exemplo. Vamos declarar fora da nossa condição a variável res com um valor, e dentro da condição mudaremos esse valor para outro:

let res = 1; if (true) { res = 2; } console.log(res); // exibirá 2

Como você vê, a variável res mudou dentro da condição. Tudo, no entanto, mudará, se dentro da condição também declararmos a variável res via let:

let res = 1; if (true) { let res = 2; // declararemos a variável via let } console.log(res); // exibirá 1, e não 2!

Aqui, a questão é que a declaração da variável via let dentro da condição criou uma variável local res.

Ou seja, dentro da condição existe uma variável res, e fora da condição - outra. Podemos confirmar isso, exibindo o valor da variável no console dentro da condição:

let res = 1; if (true) { let res = 2; console.log(res); // exibirá 2 } console.log(res); // exibirá 1

O autor do código abaixo quis realizar a verificação da idade para atingir 18 anos. O código, no entanto, para qualquer valor de idade exibe no console o valor undefined. Corrija o erro do autor do código. Aqui está o código problemático:

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

O autor do código abaixo quis realizar a verificação da idade para atingir 18 anos. Após a verificação do código, descobriu-se que se a idade for igual ou maior a 18 anos, então na variável adult é registrado true, como deveria ser, no entanto, se a idade for menor que 18, então a variável adult tem o valor undefined. Corrija o erro do autor do código.

Aqui está o código problemático:

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

O autor do código abaixo quis realizar a verificação da idade. O código, no entanto, para qualquer valor de idade exibe no console o valor undefined. Corrija o erro do autor do código.

Aqui está o código problemático:

let age = 17; let res; if (age >= 18) { if (age <= 23) { let res = 'de 18 a 23'; } else { let res = 'mais de 23'; } } else { let res = 'menos de 18'; } console.log(res);

O autor do código abaixo quis realizar a verificação da idade. O código, no entanto, para valor de idade maior que 18 anos exibe no console o valor undefined. Corrija o erro do autor do código.

Aqui está o código problemático:

let age = 19; let res; if (age >= 18) { let res; if (age <= 23) { res = 'de 18 a 23'; } else { res = 'mais de 23'; } } else { res = 'menos de 18'; } console.log(res);
Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar