Наверное, у всех есть какой-то свой собственный стиль написания кода. Некоторое время назад мне пришлось адаптироваться к принятому в проекте стилю, который сильно отличался от моего, первое время было очень неудобно, потом привык, но не очень нравилось. В итоге выработался следующий стиль кодирования:
FD:
function callee(arg) {
// …
}
• между именем функции и открывающей скобочкой нет пробела
• открывающая фигурная скобка в той же строке
• закрывающая фигурная скобка на уровне function
FE:
var callee = function(arg) {
// …
};
• между function и открывающей скобочкой нет пробела
Объект:
var obj = {
property: value,
method: function(arg) {
// …
}
};
• двоеточие не отделяется пробелом от имени свойства или метода
Ветвления:
if(…) {
// …
}
else if(…) {
// …
}
else {
// …
}
• else/else-if yачинаются с новой строки
• пробела между if и открывающей скобочкой нет
Циклы:
while(…) {
// …
}
do {
// …
}
while(…);
for(…) {
// …
}
• for только в качестве for-in
Конструкторы:
(new Date).getTime()
• скобки функции-конструктора не ставятся, когда возможно
Операторы:
typeof variable
if(!variable && "property" in object) {…}
var a = b ? c : d;
• минимум скобок
• разделяются пробелами, но не отбиваются пробелами от скобок
Переменные:
var a = 1, b = 2, c = 3;
var key, obj = {…};
for(key in obj) {…}
var a;
while(…) {
a = i;
}
function(event) {
event = event || window.event;
var target = …;
}
• один var для нескольких переменных
• если до этого есть var, писать еще один внутри for ни к чему
• var не ставится внутри цикла (знаю, что интерпритированы они будут сразу)
• var не ставится, где попало, только в начале логических блоков
• существующие переменные не переопределяются с помощью var
Другое:
• все имена в camelStyle
• для отступов используется знак табуляции
• избавляемся от strict warnings в консоли Firefox
• не опускаем фигурные скобки
_____________________________
Только недавно догнал, что Firefox ругается только на такие функции:
function() {
if(…) {
return …;
}
}
а не на все функции, которые ничего не возвращают
На некоторые вещи ругается JSLint, думаю, стоит ли следовать всем рекомендациям или это никому ненужные ограничения?
Ссылки:
MDC: JavaScript style guide
JSLint — The JavaScript Code Quality Tool
Вот, просто мысли в слух