var
: Escopo de FunçãoQuando você declara uma variável usando
var
, ela tem escopo de função. Isso significa que a variável é acessível em qualquer lugar dentro da função em que foi declarada, independentemente de blocos comoif
oufor
. Mesmo que a declaração esteja dentro de um bloco, ela "vaza" para o escopo da função inteira.Por exemplo, se você declarar uma variável
var
dentro de umif
dentro de uma função, ela ainda poderá ser acessada e modificada fora desseif
, mas dentro da mesma função. Esse comportamento pode levar a surpresas e dificultar a depuração, especialmente em funções longas, já que uma variável pode ser alterada em um local distante de sua declaração inicial.JavaScriptfunction exemploVar() {if (true) {var numero = 10;console.log(numero); // Saída: 10}console.log(numero); // Saída: 10}let
: Escopo de BlocoEm contraste,
let
foi introduzido no ECMAScript 2015 (ES6) para resolver as peculiaridades dovar
. Uma variável declarada comlet
tem escopo de bloco. Isso significa que a variável é limitada ao bloco, expressão ou declaração onde foi definida. Um bloco é delimitado por chaves{}
.Ao usar
let
, a variável é visível apenas dentro de seu bloco de escopo. Se você tentar acessá-la fora desse bloco, receberá um erro de referência. Essa característica promove um código mais seguro e legível, pois limita a visibilidade da variável ao local onde ela é realmente necessária.JavaScriptfunction exemploLet() {if (true) {let numero = 20;console.log(numero); // Saída: 20}// console.log(numero); // Erro: ReferenceError: numero is not defined}A principal diferença é que
var
"vaza" para o escopo da função, enquantolet
respeita estritamente o escopo do bloco, tornando seu comportamento mais intuitivo e controlável. Por isso, a prática recomendada hoje é usarlet
(econst
) em vez devar
em projetos modernos.Fonte: perguntas e respostas para entrevistas de JavaScript, criado por Pratik BandalFonte: Google Gemini
- Gerar link
- X
- Outros aplicativos
- Gerar link
- X
- Outros aplicativos
Comentários
Postar um comentário