Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   О синтаксисе, "грамматике" и этике "правописания" кода на JS. (https://javascript.ru/forum/misc/35465-o-sintaksise-grammatike-i-ehtike-pravopisaniya-koda-na-js.html)

Nanto 11.02.2013 16:17

О синтаксисе, "грамматике" и этике "правописания" кода на JS.
 
В целом тема для конкретных замечаний о том как КОРРЕКТНО писать на JS, а не о том как можно или дозволено... В общем немного расплывчато, но для затравки начну:
1) После описания функций за закрывающей фигурной скобкой позволено не ставить точку с запятой. НЕ знаю как там в спецификации, но я всегда ставлю! Просто по привычке - чтобы было очевидно где конец конструкции, да и просто из-за того, что "не проставление точки с запятой после описания функции" требует лишней мозговой деятельности - "ага, это функция - тут можно и не ставить"...

2) никогда не использую тернарый оператор. быстрее - спору нет! Но "читабельность"...

Кто что добавит (или поправит)? Может у кого ссылки есть (на вменяемые источники)?

rgl 11.02.2013 17:05

1) После закрывающей фигурной скобки точка с запятой ставится только в одном случае - если это литерал объекта. В остальных случаях точка с запятой не ставится. Не ставится после функции, не ставится после составного оператора. Часто эта неуместная точка с запятой прощается, но не всегда, напр.
if( условие )
{
  // операторы
} // если после этой скобки поставить точку с запятой - ошибка!
else
{
  // операторы
}

2) никогда не использую потому что для меня это сложно - аргумент против чего угодно - рекурсии, замыканий, цикла do...while, ...
Конструкция
a[x*5+y].b = flag ? 1 : 2;
гораздо легче читается чем
if( flag ) a[x*5+y].b = 1; else a[x*5+y].b = 2;


Лично я никогда не напишу конструкцию типа
return (x > 100) ? true : false;
или
return (numberToCheck > lowerBound) ? true : false;
подражая некоторым "профессионалам":
http://msdn.microsoft.com/ru-ru/magazine/cc163419.aspx

danik.js 11.02.2013 17:12

Цитата:

Сообщение от rgl
return (x > 100) ? true : false;

Ну и тупость. (x > 100) и так вернет true/false

Можно почитать coding standarts, например, Google.

ksa 12.02.2013 08:53

Цитата:

Сообщение от Nanto
Кто что добавит (или поправит)?

Пока работаешь сам - волен писать как угодно. :D Все проблемы только твои.

Но нормальная контора сама предъявит к тебе требования по написанию текста программ. И тут уже пофиг будет на твоё мнение и привычки. :)


Часовой пояс GMT +3, время: 12:42.