Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 12.05.2012, 16:09
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от nerv_
что мешает самому проверить?
Да как-то сразу и не сообразил, что это можно проверить, хотелось узнать от опытных людей как лучше использовать циклы c var i или просто с i.

Если так как я подумал, то все циклы всех запускаемых функций, в которых используется счётчик i, будут использовать эту переменную.
Поэтому наверное имеет смысл объявить i как глобальную (или совсем её не объявлять, раз уж всё равно сама создаётся), а в условиях циклов не использовать выражение var i (и не использовать i для других целей, так как её значение будет зависеть от последнего исполненного цикла).
Попробую проверить.


Сообщение от nerv_
лучше создавать таблицу целиком (строкой) и затем ее парсить (innerHTML)
Попробую, чем лучше-то, то что без createElement и appendChild
Ответить с цитированием
  #12 (permalink)  
Старый 12.05.2012, 16:32
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

nerv_, посмотрите функцию createTable2(), это вы имели в виду?
Ответить с цитированием
  #13 (permalink)  
Старый 12.05.2012, 16:52
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от bes
nerv_, посмотрите функцию createTable2(), это вы имели в виду?
почти. Зачем конкатенацию так часто производить?
Array.push()
Array.join()
Сообщение от bes
Если так как я подумал, то все циклы всех запускаемых функций, в которых используется счётчик i, будут использовать эту переменную.
Поэтому наверное имеет смысл объявить i как глобальную (или совсем её не объявлять, раз уж всё равно сама создаётся), а в условиях циклов не использовать выражение var i (и не использовать i для других целей, так как её значение будет зависеть от последнего исполненного цикла).
Попробую проверить.
Глобальные переменные надо создавать только тогда, когда это действительно необходимо.
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #14 (permalink)  
Старый 12.05.2012, 17:11
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от nerv_
Глобальные переменные надо создавать только тогда, когда это действительно необходимо.
То есть в циклах всегда желательно использовать var i ?
Ответить с цитированием
  #15 (permalink)  
Старый 12.05.2012, 17:35
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Мое мнение заключается в том, что переменные надо объявлять всегда. Предпочитаю делать это в начале функции.
Кстати, однобуквенные переменные не есть гуд. Имена переменных должны говорить сами за себя
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #16 (permalink)  
Старый 12.05.2012, 18:24
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от nerv_
Мое мнение заключается в том, что переменные надо объявлять всегда. Предпочитаю делать это в начале функции.
Я предпочитаю объявлять переменные ближе к смысловым блокам, в которых они используются, если используются во многих блоках, то также вначале.

Сообщение от nerv_
Кстати, однобуквенные переменные не есть гуд. Имена переменных должны говорить сами за себя
Не спорю, что-то желательно назвать со смыслом, а где-то проще понять фразу если использовать короткое имя (которое, кстати, при желании можно закомментировать).
Как, например, назвать переменную k в функции createTable (увеличительНаКоличествоС олбцов что ли, не очень-то понятное выражение получится из таких имён).


Проверка показала, что я правильно думал, то есть во всех циклах используется одна и та же переменная i, то есть B@rmaley.e><e был неправ, что в коде создаётся много глобальных переменных.
Тут вопрос спорный получается использовать или не использовать var i в циклах: для порядка, конечно, чтобы не висела эта i в памяти, надо использовать var i, а в принципе, если уверен, что нигде эту i больше использовать не будешь, можно и без var.


nerv_, не очень понял что нужно сделать в вашем способе, используя push() и join(): перевести строку в массив что ли, а потом каким-то образом вклинить туда <tr><td> и </tr><td>.
Ответить с цитированием
  #17 (permalink)  
Старый 12.05.2012, 18:55
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от bes
B@rmaley.e><e был неправ, что в коде создаётся много глобальных переменных
tr, i, j, td в довесок к уже существующим — этого мало?
Их вообще ни одной не должно быть.
Ответить с цитированием
  #18 (permalink)  
Старый 12.05.2012, 19:09
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от B@rmaley.e><e
tr, i, j, td в довесок к уже существующим — этого мало?
Теперь понятно сколько для вас много.

Сообщение от B@rmaley.e><e
Их вообще ни одной не должно быть.
Как тогда решать, например, с такими как alphabet, rows, cols, которые используются во многих функциях??
Ответить с цитированием
  #19 (permalink)  
Старый 12.05.2012, 19:11
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от bes
B@rmaley.e><e был неправ
На моей памяти такого не было
Сообщение от bes
Как, например, назвать переменную k в функции createTable (увеличительНаКоличествоС олбцов что ли, не очень-то понятное выражение получится из таких имён).
Это твоя проблема, что ты не можешь придумать хорошие имена. Не вникая в суть - stepСolumn
Сообщение от B@rmaley.e><e
nerv_, не очень понял что нужно сделать в вашем способе, используя push() и join(): перевести строку в массив что ли, а потом каким-то образом вклинить туда <tr><td> и </tr><td>.
snake - первая функция в листинге. Я не утверждаю, что являюсь образцовым кодером, но на этот счет, как мне кажется, прав.
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #20 (permalink)  
Старый 12.05.2012, 20:18
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от bes
Как тогда решать, например, с такими как alphabet, rows, cols, которые используются во многих функциях??
Замыкания.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
шифрование строки по ключу JAre Библиотеки/Тулкиты/Фреймворки 26 26.02.2015 16:06
Кликаем по квадрату - он сдвигается и перекрашивается. Как это осуществить? Kaur Общие вопросы Javascript 19 27.01.2012 07:06
Шифрование ссылки Korvin Общие вопросы Javascript 4 27.02.2009 13:05