08.12.2012, 20:35
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
tenshi,
механизм не важен -интерпретатор здесь абстракция. ключевое -
Сообщение от tenshi
|
который последовательно анализирует лексемы и на основе их типа - помещает её в ту или иную часть дерева
|
что соответствует
Сообщение от tenshi
|
А так же интерприиатор тратит время на авторасстановку.
|
против чего ты возражал
Сообщение от tenshi
|
не знаю как интерприиаторы, а интерпретаторы ничем таким не занимаются.
|
Последний раз редактировалось dmitriymar, 08.12.2012 в 20:38.
|
|
08.12.2012, 20:44
|
Профессор
|
|
Регистрация: 08.01.2012
Сообщений: 253
|
|
Shitbox2,
Вот отличная статья на эту тему на хабре, все узкие моменты разбираются.
И ответ на ваш вопрос:
"На практике надо ставить везде, ибо все так или иначе сжимают скрипты. И отсутствие точки с запятой может вызвать ошибку в сжатом скрипте, которую крайне сложно найти. "
|
|
08.12.2012, 22:09
|
Профессор
|
|
Регистрация: 20.03.2008
Сообщений: 1,183
|
|
> против чего ты возражал
и где ты узрел в моих словах автоподстановку, если в синтаксическое дерево лексема ";" даже не попадает?
> И ответ на ваш вопрос:
это из комментария, а статья о противоположном. и на практике надо выбирать толковые инструменты, а не подстраиваться под кривые.
> И всё же спасенные микросекунды не стоят того, чтобы отказываться от явного разделения конструкций.
переводы строк вполне себе явные и более естественные разделители. попробуй поработать, например, с питоном и поймёшь, что семиколоны - не более чем атавизм
__________________
.ня
|
|
09.12.2012, 14:18
|
Профессор
|
|
Регистрация: 04.10.2010
Сообщений: 571
|
|
Цитата:
|
нет, проблема была в том, что ты начал выражение со скобки. не начинай выражения со скобок и не будет у тебя больше никогда таких проблем.
|
Может быть проще принять такой синтаксис
;(function(){ ... })()
Тогда ; придется ставить лишь в исключительных ситуациях, а не после каждой строки?
Hoshinokoe, спасибо за статью, читаю...
|
|
09.12.2012, 14:23
|
Профессор
|
|
Регистрация: 20.03.2008
Сообщений: 1,183
|
|
лучше всё же такой
Сообщение от tenshi
|
void function(){ /*код*/ }()
|
__________________
.ня
|
|
09.12.2012, 14:31
|
Профессор
|
|
Регистрация: 04.10.2010
Сообщений: 571
|
|
А почему он должен работать? Т.е., если записать
string function(){ return 'str' }()
то ф-я выполнится? Что-то не нашел такого в синтаксисе...
Из статьи
Цитата:
|
Когда программа встречает токен, недопустимый грамматикой, вставляется ";", если (а) в этом месте присутствует перенос строки
|
Вот теперь проблема с выражением, начинающимся со скобок (и с новой строки) становится не ясна. Либо оптимизатор не полностью поддерживает стандарт языка.
P.S. По своему опыту знаю, что пропуск точек с запятой мешает автоформатированию в jsfiddle и т.п. средах, что немного угнетает...
Последний раз редактировалось Shitbox2, 09.12.2012 в 15:10.
|
|
09.12.2012, 15:46
|
Профессор
|
|
Регистрация: 20.03.2008
Сообщений: 1,183
|
|
нет такого синтаксиса. просто есть оператор void.
__________________
.ня
|
|
09.12.2012, 19:15
|
Профессор
|
|
Регистрация: 14.09.2012
Сообщений: 162
|
|
Сообщение от tenshi
|
нет, проблема была в том, что ты начал выражение со скобки. не начинай выражения со скобок и не будет у тебя больше никогда таких проблем.
|
Пишу не один, так что за весь код сказать не могу, но я нигде не видел выражений, начинающихся со скобок. Т.е. это сделал минификатор.
|
|
09.12.2012, 19:22
|
Профессор
|
|
Регистрация: 20.03.2008
Сообщений: 1,183
|
|
какая прелесть)
__________________
.ня
|
|
09.12.2012, 22:12
|
Профессор
|
|
Регистрация: 20.03.2008
Сообщений: 1,183
|
|
> Не вижу ни одной веской причины, почему это обязательно необходимо предпочесть этому
меньше нагромождение скобочек, например
> Твоя неприязнь к семиколонам это всего-лишь вопрос твоих личных предпочтений, и не более того.
как и твоя приязнь. о чём спор?
> new function(){ /*код*/ }
тут создаётся лишний объект
__________________
.ня
|
|
|
|