За последние пару месяцев я много узнал о JavaScript. Я злоупотреблял языками в течение многих лет, я осмелюсь сказать, что теперь у меня есть лучшее понимание языка, и я полюбил преимущества его функционального характера.
В последнее время я занялся изучением Схемы, но это просто для удовольствия. Просмотр ссылки MDN Я заметил, что JS, хотя и не имеет области блока, имеет ключевое слово, которое можно использовать для объявления переменной local в данном блоке, подобно Scheme let
:
for (var i=0;i<someArray.length;i++)
{
console.log(someArray[i]);
}
console.log(i);//will log someArray length
В то время как:
for (let i=0;i<someArray.length;i++)
{
console.log(someArray[i]);
}
console.log(i);//undefined
Итак, теперь я хочу знать: почему не используется let
чаще? Это как-то связано с поддержкой X-браузера? Является ли это лишь одним из немногих известных лакомств?
Короче говоря, каковы преимущества использования var
над let
, каковы предостережения?
Насколько я могу судить, поведение let
, если что-либо, более последовательное (двойные объявления в одном блоке поднимают a TypeError
, за исключением тел функций (однако, исправления ECMA6 исправляют это). < бр /" > Честно говоря, кроме того, что эта функция/ключевое слово не очень хорошо известна, я изо всех сил пытаюсь придумать какой-либо аргумент против использования циклов let
для циклов или где бы то ни было, где временная переменная делает более читаемый код.