Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.01.2016, 22:07
Аспирант
Отправить личное сообщение для mrbanan Посмотреть профиль Найти все сообщения от mrbanan
 
Регистрация: 28.08.2015
Сообщений: 40

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

Просто иногда вся работа идёт внутри цикла и тогда до мне надо кучу переменных объявить...
Ответить с цитированием
  #2 (permalink)  
Старый 09.01.2016, 22:17
Кандидат Javascript-наук
Отправить личное сообщение для yazonnile Посмотреть профиль Найти все сообщения от yazonnile
 
Регистрация: 25.05.2012
Сообщений: 133

корректно
Ответить с цитированием
  #3 (permalink)  
Старый 09.01.2016, 22:26
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

mrbanan, зависит от областей видимости, например, в ES6 цикл имеет свою область видимости, в ES5- не имеет. А так все var-ы всплывают при входе в scope, как и объявления функций, в этом суть var-а.
Ответить с цитированием
  #4 (permalink)  
Старый 09.01.2016, 22:32
Аспирант
Отправить личное сообщение для mrbanan Посмотреть профиль Найти все сообщения от mrbanan
 
Регистрация: 28.08.2015
Сообщений: 40

Rise я чё-то в этих ES5, ES6 разобраться не могу, вот я пишу на JS сейчас по какому стандарту я пишу?
Или тогда так переформулирую: как писать наиболее безопасно что бы избежать проблем с ошибкой переопределния переменных?
Ответить с цитированием
  #5 (permalink)  
Старый 09.01.2016, 22:49
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

mrbanan, ES6, остальное ES5-
Сообщение от mrbanan Посмотреть сообщение
как писать наиболее безопасно что бы избежать проблем с ошибкой переопределния переменных?
От scope зависит я же написал, учись определять его...

Последний раз редактировалось Rise, 09.01.2016 в 22:55.
Ответить с цитированием
  #6 (permalink)  
Старый 10.01.2016, 06:23
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Сообщение от 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 можно, так как там функция, а это значит, что там уже своя область видимости.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как и где задать цикл? Blondinka Events/DOM/Window 2 10.06.2014 15:29
Избавление от глобальных переменных при проходе алгоритма через несколько ивентов shoo Общие вопросы Javascript 4 13.11.2012 12:07
Объявление переменных пользователем maximnara Общие вопросы Javascript 4 22.06.2011 21:39
правильное объявление переменной Karpo Общие вопросы Javascript 5 29.09.2010 15:35
Нужно ли в этом примере (это) объявление переменных или нет? sashka++ Общие вопросы Javascript 5 31.07.2010 04:47