Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.01.2011, 12:02
Аватар для балерун
Аспирант
Отправить личное сообщение для балерун Посмотреть профиль Найти все сообщения от балерун
 
Регистрация: 16.11.2009
Сообщений: 79

Хорошо ли писать var в цикле?
Нежелательно объявлять переменную в цикле? Или ресурсы, которые тратятся на проверку, создана ли переменная, очень малы?

Меня интересует, как правильнее писать, так:
for (var i = 0; i < 10; i++) {
    var u = some_function();
}

или так:
var i, u;
for (i = 0; i < 10; i++) {
    u = some_function();
}

Тоже самое с циклом for(.. in ..)
Так:
for (var prop in obj) {}

или так:
var prop;
for (prop in obj) {}


Сорри, за такой мелочный вопрос
Ответить с цитированием
  #2 (permalink)  
Старый 28.01.2011, 12:05
Аватар для Vulkan
Профессор
Отправить личное сообщение для Vulkan Посмотреть профиль Найти все сообщения от Vulkan
 
Регистрация: 25.05.2010
Сообщений: 511

Я обычно всегда сначала объявляю переменную, а затем уже в цикле использую, думаю так правильнее.
Ответить с цитированием
  #3 (permalink)  
Старый 28.01.2011, 12:16
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

если я не ошибаюсь разница только в количестве символов
__________________
.
Ответить с цитированием
  #4 (permalink)  
Старый 28.01.2011, 12:19
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Лучше первое. Переменная объявляется там, где начинает использоваться. В семантике и в скорости разницы нет.
Ответить с цитированием
  #5 (permalink)  
Старый 28.01.2011, 12:42
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 15.12.2009
Сообщений: 742

Сообщение от Kolyaj
В семантике и в скорости разницы нет.
Я вот не помню но разница вроде есть. Пример: надо использовтьпеременную в 2ух разных вариантах (всмысле она может содержать разные данные) и если ее обьявлять после проверки, то интерпретатор напишет(?), что переменная необьявлена или же потянется к глобальным переменным.
__________________
Настоящий программист думает и осознает сам решение задачи, а не копирует другие мысли, не осознавая их (c)
Относись к человеку так же, как хотелось бы отношения к себе (с)
Все нужно там, где оно нужно, а все не нужно нигде (с) Gozar
B~Vladi: А кто такой JavaScript стрелок?! micscr: это тот, кто не jQuery танкист.
Программы становятся медленнее быстрее, чем компьютеры становятся быстрее (с) Никлаус Вирт
Ответить с цитированием
  #6 (permalink)  
Старый 28.01.2011, 12:54
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от PeaceCoder
Пример: надо использовтьпеременную в 2ух разных вариантах (всмысле она может содержать разные данные) и если ее обьявлять после проверки, то интерпретатор напишет(?), что переменная необьявлена или же потянется к глобальным переменным.
Чего?
Ответить с цитированием
  #7 (permalink)  
Старый 28.01.2011, 13:09
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,134

Сообщение от Kolyaj
Лучше первое. Переменная объявляется там, где начинает использоваться.
А если потом будут чего-то дописывать?
Я все объявляю в самом начале... Мало того! Такая практика на том же COS даёт лучший контроль выделения оперативной памяти.
Ответить с цитированием
  #8 (permalink)  
Старый 28.01.2011, 13:33
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от ksa
А если потом будут чего-то дописывать?
И что?

Сообщение от ksa
Мало того! Такая практика на том же COS даёт лучший контроль выделения оперативной памяти.
Что такое COS и как ваша практика помогает выделению оперативной памяти?
Ответить с цитированием
  #9 (permalink)  
Старый 28.01.2011, 13:51
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,134

Сообщение от Kolyaj
И что?
Твое объявление в цикле придется таки переносить...
Сообщение от Kolyaj
Что такое COS
Каше Обжект Скрипт
http://docs.intersystems.com/cache20...e.cls?KEY=TCOS

Сообщение от Kolyaj
и как ваша практика помогает выделению оперативной памяти?
Несколько определений подряд (и уш особенно в цикле ) съедают больше памяти

NO // Плохой пример
   n a
   n b
   n c
   // Остальной код
   q

YES // Хороший пример
   n a,b,c
   // Остальной код
   q


Это к тому что нужно тексты писать т.с. кроссязычно.
Ответить с цитированием
  #10 (permalink)  
Старый 28.01.2011, 13:52
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от ksa
Твое объявление в цикле придется таки переносить...
Зачем? Объявление в цикле ничем не отличается от объявления в начале функции.

Сообщение от ksa
Каше Обжект Скрипт
И причём здесь JavaScript?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простой вопрос по JavaScript. Работа с датой. Помогите Hanuman Общие вопросы Javascript 3 30.07.2010 20:30
"Сценарий замедляет работу IE" dmitlantis Internet Explorer 0 25.05.2010 21:38
Библиотека javascript эффектов HelpeR Ваши сайты и скрипты 39 15.05.2010 21:30
CComponent - кроссбраузерные компоненты tenshi Ваши сайты и скрипты 5 20.04.2010 23:22
Свойства посредством полиморфных функций tenshi Ваши сайты и скрипты 0 18.03.2010 17:12