12.05.2012, 16:09
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Сообщение от nerv_
|
что мешает самому проверить?
|
Да как-то сразу и не сообразил, что это можно проверить, хотелось узнать от опытных людей как лучше использовать циклы c var i или просто с i.
Если так как я подумал, то все циклы всех запускаемых функций, в которых используется счётчик i, будут использовать эту переменную.
Поэтому наверное имеет смысл объявить i как глобальную (или совсем её не объявлять, раз уж всё равно сама создаётся), а в условиях циклов не использовать выражение var i (и не использовать i для других целей, так как её значение будет зависеть от последнего исполненного цикла).
Попробую проверить.
Сообщение от nerv_
|
лучше создавать таблицу целиком (строкой) и затем ее парсить (innerHTML)
|
Попробую, чем лучше-то, то что без createElement и appendChild
|
|
12.05.2012, 16:32
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
nerv_, посмотрите функцию createTable2(), это вы имели в виду?
|
|
12.05.2012, 16:52
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
Сообщение от bes
|
nerv_, посмотрите функцию createTable2(), это вы имели в виду?
|
почти. Зачем конкатенацию так часто производить?
Array.push()
Array.join()
Сообщение от bes
|
Если так как я подумал, то все циклы всех запускаемых функций, в которых используется счётчик i, будут использовать эту переменную.
Поэтому наверное имеет смысл объявить i как глобальную (или совсем её не объявлять, раз уж всё равно сама создаётся), а в условиях циклов не использовать выражение var i (и не использовать i для других целей, так как её значение будет зависеть от последнего исполненного цикла).
Попробую проверить.
|
Глобальные переменные надо создавать только тогда, когда это действительно необходимо.
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
12.05.2012, 17:11
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Сообщение от nerv_
|
Глобальные переменные надо создавать только тогда, когда это действительно необходимо.
|
То есть в циклах всегда желательно использовать var i ?
|
|
12.05.2012, 17:35
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
Мое мнение заключается в том, что переменные надо объявлять всегда. Предпочитаю делать это в начале функции.
Кстати, однобуквенные переменные не есть гуд. Имена переменных должны говорить сами за себя
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
12.05.2012, 18:24
|
|
Профессор
|
|
Регистрация: 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>.
|
|
12.05.2012, 18:55
|
|
⊞ Развернуть
|
|
Регистрация: 11.01.2010
Сообщений: 1,810
|
|
Сообщение от bes
|
B@rmaley.e><e был неправ, что в коде создаётся много глобальных переменных
|
tr, i, j, td в довесок к уже существующим — этого мало?
Их вообще ни одной не должно быть.
|
|
12.05.2012, 19:09
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Сообщение от B@rmaley.e><e
|
tr, i, j, td в довесок к уже существующим — этого мало?
|
Теперь понятно сколько для вас много.
Сообщение от B@rmaley.e><e
|
Их вообще ни одной не должно быть.
|
Как тогда решать, например, с такими как alphabet, rows, cols, которые используются во многих функциях??
|
|
12.05.2012, 19:11
|
|
junior
|
|
Регистрация: 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 - первая функция в листинге. Я не утверждаю, что являюсь образцовым кодером, но на этот счет, как мне кажется, прав.
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
12.05.2012, 20:18
|
|
⊞ Развернуть
|
|
Регистрация: 11.01.2010
Сообщений: 1,810
|
|
Сообщение от bes
|
Как тогда решать, например, с такими как alphabet, rows, cols, которые используются во многих функциях??
|
Замыкания.
|
|
|
|