Однострочные объявления "var" или одна строка в строке?
Я смотрю на документ Douglas Crockford Code Conventions for JavaScript, и он говорит, что var
должен быть в алфавитном порядке и по одному на строку.
var a; // array of class names
var c = node.className; // the node classname
var i; // loop counter
Однако стандарт jsLint (и jsHint) заключается в том, чтобы объявить их в одной строке, и он выдает эту ошибку, если это сделано Crockford путь
слишком много операторов var
Поэтому jsLint хочет сделать это следующим образом.
var a, c = node.className, i;
Это кажется мне довольно противоречивым, и хотя, вероятно, довольно минут в общем объеме программирования, я надеюсь получить это право, прежде чем я ошибаюсь.
Какова общепринятая практика при объявлении JavaScript-варов?
Ответы
Ответ 1
LINT хочет один оператор объявления var
, но его можно разложить на несколько строк.
var a, b, c;
или
var a,
b,
c;
Причина, по которой он хочет получить один оператор, заключается в том, чтобы избежать путаницы в отношении того, какие переменные относятся к локальной области. С помощью одного оператора var все локально ограниченные переменные содержатся в одном месте в пределах области действия, и каждый может быстро прочитать код, чтобы узнать, что это такое.
Кроме того, рекомендуется, чтобы этот оператор объявления находился в верхней части области видимости, так как механизм подъема JavaScript перемещает их туда до его выполнения в любом случае. При написании кода, чтобы ожидать, что оператор в верхней части области, механизм подъема не может вызвать каких-либо неожиданных действий.
Ответ 2
Ни один из способов не прав, но я обычно предпочитаю использовать объявления с одним строковым стилем в начале блока кода. Самое главное - сохранить его согласованным. Пример:
function() {
var foo = "bar",
number = 123,
etc = "...";
// stuff..
}
Ответ 3
Даже комбинация в порядке. Это все о предпочтении. Если вы работаете с командой, задайте предпочтение и сохраните его.
var a,
c = node.className,
i;
Ответ 4
Аргумент в основном обсуждается в стиле, однако гораздо важнее согласовать стандартную и , чтобы ваша команда использовала ее последовательно.
Ответ 5
Другой вариант (это тот, который я использую):
var a = ...,
b = ...,
c, d;
Это дает понять, сколько переменных я объявляю и что они все связаны каким-то образом (поскольку я объявляю их в одном пространстве, они в основном всегда). Это также помогает различать переменные, которые уже имеют значения, и те, которые этого не делают. Тем не менее, я только объявляю переменные, не присваивая очень редко.
Если я работаю с кодом, который следует за другим стандартом, это то, что я делаю. И это самое главное: следуйте стилю вашего проекта. В противном случае, по вашему предпочтению. Если вам действительно все равно, используйте мой стиль;)
Ответ 6
Вы можете объявить несколько переменных и назначить их в одной строке. Это вопрос личных предпочтений.