В текущем ES5 я все переменные выношу в общий var.
С точки зрения движков браузеров это ничем не лучше, ибо все ровно видимость переменной на всю функцию , но, ИМХО, читаемость выше и контролировать набор переменных проще, включая рациональность их использования, чем ловить их по телу функции, кто и где там var объявил и не продублировал ли где. Вполне возможно, что переменная счетчика будет использоваться повторно, если код синхронный. Так что никаких var в циклах у меня нет.
Тут сколько программистов - столько и code style. Я еще в var переменные разбиваю по функциональных группах:
var url,
price, weight,
x, y;
for (x = 0; x < 10; x++) {
for (y = 0; y < 10; y++) {
}
}