Я'вэ видел разных разработчиков включают точку с запятой после функции в JavaScript и некоторые не'т. Что является лучшей практике?
function weLikeSemiColons(arg) {
// bunch of code
};
или
function unnecessary(arg) {
// bunch of code
}
Точки с запятой после объявления функции* и не надо.
Грамматика `FunctionDeclaration описано в спецификация как это:
function Identifier ( FormalParameterListopt ) { FunctionBody }
Там's нет запятой грамматически обязательным, но может задаться вопросом: зачем?
Точка с запятой служит для разделения заявления друг от друга, и FunctionDeclaration не **инструкция.
FunctionDeclarations
оцениваются прежде этот код поступает в исполнение, hoisting - это простые слова используется для объяснения такого поведения.
Термины и"функция декларации" и "функция заявление на" ошибочно используются как синонимы, что не существует функции инструкции, описанные в функции спецификация, однако есть несколько реализаций, которые включают в себя функции оператора в грамматике, в частности Мозилла - но это опять-таки нестандартные.
Однако точки с запятой всегда рекомендуется, когда вы используете FunctionExpressions
, например:
var myFn = function () {
//...
};
(function () {
//...
})();
Если опустить точку с запятой после первой функции в приведенном выше примере, вы получите совершенно нежелательным результатам:
var myFn = function () {
alert("Surprise!");
} // <-- No semicolon!
(function () {
//...
})();
Первая функция будет немедленно казнен, потому что круглые скобки вокруг второго, будут интерпретироваться как "аргументы" вызова функции.
Рекомендуемые лекции:
FunctionDeclaration
против FunctionExpression
)Я использую их после того, как функция, как объявления переменных:
var f = function() { ... };
но не после классических определений:
function f() {
...
}
Корпит на JS де-факто конвенции, и он говорит, что нет точки с запятой после тела функции. Увидеть то"запятой" в разделе.
Просто оставаться последовательным! Они не нужны, но я лично использую их, потому что большинство методов минимизации полагаться на точку с запятой (например, упаковщик).
Действительно зависит только от ваших предпочтений. Мне нравится в конце строк кода с полу двоеточия, потому что я'м использоваться для Java, С++, C# и т. д, Поэтому я использую те же стандарты кодирования в JavaScript.
Я не'т, как правило, заканчиваются, хотя объявления функций в полу двоеточия, но это просто мои предпочтения.
В браузерах он будет работать в любом случае, но может быть, однажды они'МР придумать некоторые более строгие стандарты, регулирующие это.
Пример кода я бы написал:
function handleClickEvent(e)
{
// comment
var something = true; // line of code
if (something) // code block
{
doSomething(); // function call
}
}
Это'ы на самом деле больше, чем вопрос о конвенции или консистенции.
Я'м довольно уверен, что не поставив точку с запятой после каждого оператора замедляет внутренние синтаксический анализатор потому что он должен выяснить, где в конце заявления. Я бы хотел для вас, чтобы положительно подтвердить, что некоторые полезные цифры, но, может быть, вы можете погуглить сами. :)
Кроме того, при сжатии или сокращение кода, отсутствие точки с запятой может привести к уменьшенная версия вашего скрипта, который не'т делать, что ты хочешь, потому что все белое пространство уходит.
Когда я уменьшил мои скрипты, я понял, что мне нужно использовать точку с запятой для функции, которая начинается с равенства знаком. при определении функции как VAR, да, вам нужно использовать точку с запятой.
нужна точка с запятой
var x = function(){};
var x = new function(){};
this.x = function(){};
не нужно запятой
function x(){}
Просто:
Это хорошая практика, чтобы оставить точку с запятой ;
после окончания подтяжки функцию. Они были для лет.
Одним из преимуществ постоянного использования, если вы хотите минимизировать ваш код JavaScript.
Как минификации JavaScript, и позволяет уменьшить размер файла немного.
Но что касается лучших практик и ответ выше, не рекомендуется использовать его после тега функции.
Если вы Don'Т использовать точку с запятой, и если вы хотите минимизировать (как многие разработчики любят делать, если их сайт предлагают много кода JavaScript) вы могли получить всевозможные ошибки/предупреждения.
//файл один ВАР один=1; ВАР два=2; tryOne функция(){} trytwo функция(){}
и
//файл два ВАР один=1; ВАР два=2; tryOne функция(){}; trytwo функция(){};
когда вы сократите обоих, вы получите следующие выходные
Обратите внимание, что комментарии только для иллюстрационная //файл один ВАР один=1;ВАР два=2;Функция tryOne(){} trytwo функция(){}
и
//файл два ВАР один=1;ВАР два=2;Функция tryOne(){};trytwo функция(){};