Dmitry A. Soshnikov, ну ты мозг, конечно...
Цитата:
Цитата:
|
Цитата:
|
Цитата:
Только насчёт "как принято" тут утверждать категорично нельзя, поскольку официального style-guide (который я бы хотел видеть даже от ECMA, либо от B.Eich-a) - нет. Более-менее "полуофициальным" можно считать style-guide от Mozilla - https://developer.mozilla.org/en/JavaScript_style_guide (поскольку создатель JS хоть как-то связан с Mozilla, а именно - работает там ;)); данная стилистика похожа на стиль Java. К примеру у Python-a заведён специальный документ на эту тему, на официальном сайте. По поводу приоритетов, я уже писал: http://javascript.ru/forum/offtopic/...html#post33740 (1) - локальный в компании, (2) - официальный технологии, (3) - локальная привычка. В идеале, (1) должно быть === (2). В профессиональном коде на международном уровне, (3) вообще не должно рассматриваться. Цитата:
Цитата:
var dof = 10; dof { } while(false); Вот этот код должен завершится так: var dof = 10; dof; // разрешение идентификатора { // пустой блок }; while(false); // пустой while Но не этот: var dof = 10; dof { } while(false); Так что, Опера, не права, получается. Цитата:
Вообще, существенным является именно наличие определённой единой стилистики кода в команде - это на данный момент имеется. Впрочем, если бы речь шла о выборе стилистики в самом начале проекта, я бы отдал предпочтение стилистике Mozilla. Хотя, стилистика текущего проекта также хорошо структурирована и оформлена (для меня вопрос "Где ставить скобку - в той же строке или с новой?" - давно уже перешёл в разряд несущественных, я могу подстраиваться под стилистику, главное, чтобы она была единой, логически структурированной и обоснованной). Хотя, если "завтра" B.Eich или ECMA выпустят официальный style guide, в этом вопросе будет поставлена окончательная точка - и тогда да, возможно предложить смену стилистики, поскольку код на международном уровне должен быть оформлен по официальному стилю технологии (хотя, локальная стилистика компании всё ещё будет иметь приоритет выше; в своих локальных проектах - должна быть только официальная стилистика, не касаемо каких-то своих локальных привычек). Kolyaj, возвращаясь по твоим вопросам (ответам), Цитата:
CallExpression : MemberExpression Arguments Arguments: ( ) ( ArgumentList ) Т.е. MemberExpression со скобками вызова - это выражение вызова (функции). А MemberExpression, в частности, распадается на Idenfier. Т.е. с ключевым словом бы это прокатило, а вот с идентификатором - уже нет, это по-любому трактуется, как вызов функции. Ну и, плюс, механизм автоматической вставки точки с запятой делает своё дело. Цитата:
Цитата:
return // undefined { x: 10 }; return { x: 10 }; // object Цитата:
iff (!x) { // SyntaxError x = 1; } subzey, Цитата:
Ниже - синтаксически правильная ECMAScript-программа, состоящая из блока и пустой инструкции: { ; } P.S.: ещё (классические) примеры: a = b + c ({x: 10}).x Здесь наоборот, точка с запятой не будет поставлена в конце первой строки, поскольку "c(... )" - это вызов функции с аргументом "{x: 10}". Или: var foo = function () { alert(arguments[0]); } (function () {return 'x';}()) Так же, точка с запятой не ставится; это вызов первой анонимной функции, в которую параметром передаётся результат вызова второй анонимной функции. var foo = function () { alert(arguments[0]); }; (function () {return 'x';})(); А так - верно: описание первой анонимной функции (которая сохраняется в foo); далее описание и вызов второй анонимной функции. |
Вобщем, у меня вывод такой:
выбирать стиль кодирования (для себя, команды, стандарта) необходимо в первую очередь исходя из: Цитата:
Это поможет избежать ошибок в логике программы и понимания кода другими людьми. Как показывает предыдущий пост, таких ситуаций может быть немало. Цитата:
PS: спасибо за примеры, отличный мануал;) |
Часовой пояс GMT +3, время: 02:43. |