Я знаю, что JavaScript не имеет более мелкозернистых областей, чем «глобальные» или «для каждой функции». Но есть ли реальная проблема с написанием что-то вроде:Повторное использование VAR с заданным именем в переменных цикла?
function test() {
for (var i = 10; i < 20; i++) { /* ... */ }
for (var i = 03; i < 04; i++) { /* ... */ }
}
Это раздражает, чтобы держать придумывают новые названия для индексации переменных (это то, что я делал: fooIndex
, barIndex
и т.д.) и перемещение декларации в верхней части функции не велик либо:
function test() {
var i;
for (i = 10; i < 20; i++) { /* ... */ }
for (i = 03; i < 04; i++) { /* ... */ }
}
Тогда, если ваши применения далеки от декларации, вы можете забыть удалить неиспользуемые переменные. Или вы можете случайно записать в глобальный масштаб, потому что считаете, что у вас есть var-declare, что вы этого не сделали.
Кажется, что меньшее зло ставит var на все, что вы намереваетесь быть локальными. Это? Согласно this answer, переопределение его как var более одного раза не имеет никакого эффекта, но эта ситуация более надуманна, чем переменные цикла. Есть ли по-настоящему веская причина не делать такие вещи, как первый случай выше?
Это * только * стилистическая проблема - я лично предпочитаю держать «уаг близко» (и использовать различные имя переменной), но разные линтеры и инструменты статического анализа имеют свои собственные предрассудки. Хотя, я бы не стал префиксным числом с 0, если я не хотел * восьмеричный ;-) – user2864740
('var' - это объявление в масштабе всей области, а не« исполняемый оператор », из-за« подъема »размещения« var », в пределах та же область функций/программ, * не влияет * на правильность программы.) – user2864740
@ useruser2864740 Моя сложная часть - продолжать придумывать кучу имен для «индекса». Я мог бы придерживаться своей текущей стратегии (вашей) или отдать себя до linter, чтобы уловить проблемы, возникающие при размещении объявлений наверху. Я не знаю. Вздох, JavaScript, ты меня ранил ... * (Примечание: как это бывает в этом случае, я хочу восьмеричное. :-) [Мое альтер-эго д-р Ребму может быть обманом] (http: //codegolf.stackexchange .com/a/16712/57)) * – HostileFork