История изменений
Исправление AndreyKl, (текущая версия) :
Если использовать как let, т.е. писать все var в начале функции, то всё очевидно.
ничего подобного, лет, в отличие от вар, можно использовать вначале блока https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let
Поэтому странных проблем не возникает
Кстати, что касается for(let i=... то его применение ограничено. Если нам нужно получить значение i после цикла, то внезапно начинаются не очевидные проблемы.
1) Область видимости лет - блок.
2) При повторном объявлении внутри одного и того же блока получаем синтаксическую ошибку.
Если сравнивать с вар, то у вар как то так:
1) область видимости - функция.
2) при повторном объявлении используем уже объявленную переменную
При этом само по себе решение не ругаться на повторно объявленные переменные в угоду весьма странным «преимуществам» является ошибкой проектирования языка, чего ты признавать не хочешь.
Так или иначе правила лет проще и очевиднее, плюс какой-никакой контроль за самоочевидными ошибками-опечатками.
Исправление AndreyKl, :
Если использовать как let, т.е. писать все var в начале функции, то всё очевидно.
ничего подобного, лет, в отличие от вар, можно использовать вначале блока https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let
Поэтому странных проблем не возникает
Кстати, что касается for(let i=... то его применение ограничено. Если нам нужно получить значение i после цикла, то внезапно начинаются не очевидные проблемы.
1) Область видимости лет - блок.
2) При повторном объявлении внутри одного и того же блока получаем синтаксическую ошибку.
Если сравнивать с вар, то у вар как то так:
1) область видимости - функция.
2) при повторном объявлении:
-- если не существует переменной с таким именем в верхнем скоупе или в текущем скоупе, то объявляем новую
-- если существует в верхнем или в текущем то используем ту что есть
При этом само по себе решение не ругаться на повторно объявленные переменные в угоду весьма странным «преимуществам» является ошибкой проектирования языка, чего ты признавать не хочешь.
Так или иначе правила лет проще и очевиднее, плюс какой-никакой контроль за самоочевидными ошибками-опечатками.
Исходная версия AndreyKl, :
Если использовать как let, т.е. писать все var в начале функции, то всё очевидно.
ничего подобного, лет можно использовать вначале блока https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let
Кстати, что касается for(let i=... то его применение ограничено. Если нам нужно получить значение i после цикла, то внезапно начинаются не очевидные проблемы.
1) Область видимости лет - блок.
2) При повторном объявлении внутри одного и того же блока получаем синтаксическую ошибку.
Если сравнивать с вар, то у вар как то так:
1) область видимости - функция.
2) при повторном объявлении:
-- если не существует переменной с таким именем в верхнем скоупе или в текущем скоупе, то объявляем новую
-- если существует в верхнем или в текущем то используем ту что есть
При этом само по себе решение не ругаться на повторно объявленные переменные в угоду весьма странным «преимуществам» является ошибкой проектирования языка, чего ты признавать не хочешь.
Так или иначе правила лет проще и очевиднее, плюс какой-никакой контроль за самоочевидными ошибками-опечатками.