Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Правильное объявление переменных (https://javascript.ru/forum/misc/60598-pravilnoe-obyavlenie-peremennykh.html)

mrbanan 09.01.2016 22:07

Правильное объявление переменных
 
Переменная объявляется
var name;
В дальнейшем используется name = 5; (уже без var)
Если переменная у меня впервые появляется внутри цикла или другой подобной структуры типа setInterval то корректно объявить её с var до цикла, а внутри цикла только перезаписывать?

Просто иногда вся работа идёт внутри цикла и тогда до мне надо кучу переменных объявить...

yazonnile 09.01.2016 22:17

корректно

mrbanan 09.01.2016 22:32

Rise я чё-то в этих ES5, ES6 разобраться не могу, вот я пишу на JS сейчас по какому стандарту я пишу?
Или тогда так переформулирую: как писать наиболее безопасно что бы избежать проблем с ошибкой переопределния переменных?

ruslan_mart 10.01.2016 06:23

Цитата:

Сообщение от mrbanan
то корректно объявить её с var до цикла, а внутри цикла только перезаписывать?


//Правильно
var foo;

for(var i = 0; i < 10; i++) {
    foo = 'bar';
}


//Правильно (упрощённо)
for(var foo, i = 0; i < 10; i++) {
    foo = 'bar';
}


//Неправильно (хоть и будет работать)
for(var i = 0; i < 10; i++) {
    var foo = 'bar';
}



//ES6:
for(var i = 0; i < 10; i++) {
    let foo = 'bar';
}



А вот в setInterval можно, так как там функция, а это значит, что там уже своя область видимости. ;)


Часовой пояс GMT +3, время: 14:35.