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 comoifoufor. 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
vardentro de umifdentro 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,
letfoi introduzido no ECMAScript 2015 (ES6) para resolver as peculiaridades dovar. Uma variável declarada comlettem 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, enquantoletrespeita estritamente o escopo do bloco, tornando seu comportamento mais intuitivo e controlável. Por isso, a prática recomendada hoje é usarlet(econst) em vez devarem 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