deixe var ou var para deixar
Nos últimos meses, aprendi muito sobre JavaScript. Tendo abusado das línguas por anos, eu ouso dizer que agora tenho uma melhor compreensão da língua e eu vim paraamor os benefícios de sua natureza funcional.
Ultimamente eu comecei a aprender Scheme, mas isso é apenas por diversão. Navegando peloReferência MDN Percebi que o JS, apesar de não ter um escopo de bloco, tem uma palavra-chave que pode ser usada para declarar uma variável local para um determinado bloco, muito parecido com o Schemelet
:
for (var i=0;i<someArray.length;i++)
{
console.log(someArray[i]);
}
console.log(i);//will log someArray's length
Enquanto que:
for (let i=0;i<someArray.length;i++)
{
console.log(someArray[i]);
}
console.log(i);//undefined
Então, o que eu quero saber agora é: por que não élet
usado com mais freqüência? Tem algo a ver com o suporte ao navegador X? É apenas um daquelesguloseimas menos conhecidas?
Em suma, quais são as vantagens de usarvar
sobrelet
Quais são as ressalvas?
Tanto quanto eu posso dizer, o comportamento delet
é, se alguma coisa, mais consistente (declarações duplas em um único bloco levantamTypeError
, exceto para corpos de função (no entanto, os rascunhos do ECMA6 corrigem isso).
Para ser honesto, além deste recurso / palavra-chave não ser muito conhecido, eu me esforço para pensarqualquer argumento contra o usolet
loops for, ou em qualquer lugar onde uma variável temporária faz para código mais legível.