JavaScript V Next – palavra-chave ‘let’

Em versões anteriores de JavaScript, uma variável pode ter escopo em dois níveis

  1. Âmbito global
  2. Escopo da Função

Não há escopo bloqueado disponível no idioma anterior. Então, o que se entende por escopo bloqueado

Na maioria das chaves de linguagem ({}) cria o escopo para a variável. variáveis ​​vivem e morrem dentro do escopo da variável. Mas não em JavaScript, veja o exemplo abaixo

Por exemplo

var x = 2; //I am global scope
var functionScope = function (flag) {
if (flag) {
var scopedVariable = 3;
}
return scopedVariable
}
console
.log(x); // Prints 2 out
console
.log(functionScope(true)); // prints 3 out !! Why
console
.log(functionScope(false)); //Prints undefined !! Why

Observe a maneira como “scopedVariable” dentro da função funciona, embora seja declarada entre colchetes, ela pode ser usada externamente para retornar o resultado. É devido à natureza do escopo da função da linguagem. Também é chamado de içamento variável (jargão)

Isso está sendo criticado como uma característica pobre da linguagem e bom o suficiente para confundir a maioria dos programadores que vêm de outra linguagem.

Solução

A palavra-chave “let” vem para o resgate que traz o escopo do bloco para a linguagem e fornece uma maneira melhor de entender o programa. Aqui está uma nova tentativa no exemplo acima

var x = 2; //I am global scope
var functionScope = function (flag) {
if (flag) {
let scopedVariable = 3;
}
return scopedVariable
}
console
.log(x); // Prints 2 out
console
.log(functionScope(true)); //throws error
console
.log(functionScope(false)); //throws error

Os lançamentos de implementação de palavra-chave “let” são erros de compilação (no navegador), assim como a outra linguagem, em vez de fornecer indefinido. Este recurso deixará os programadores de outras linguagens mais confortáveis ​​e, como linguagem, trará um pouco mais de segurança de uso.
Para brincar com este recurso, use a configuração abaixo

Configuração Traceur

Como apontado em meu blog anterior, o ES6 não está implementado em todos os navegadores. Portanto, para experimentar os recursos, você precisa usar uma biblioteca externa chamada Treceur. Como “let” é um recurso experimental, precisamos torná-lo explícito. Isso pode ser feito usando

<script>
traceur
.options.experimental = true;
</script>

Nada termina sem o êmbolo e o exemplo para todos trabalharem.
http://plnkr.co/edit/nEgd1Uni4vnSXAEqLVpS?p=preview

Melhores práticas para Es6

Sempre use ‘let’ para declaração de variável para evitar a confusão