Я видел, что разные разработчики включают точки с запятой после функций в javascript, а некоторые - нет. Какая практика?
function weLikeSemiColons(arg) {
// bunch of code
};
или
function unnecessary(arg) {
// bunch of code
}
Я видел, что разные разработчики включают точки с запятой после функций в javascript, а некоторые - нет. Какая практика?
function weLikeSemiColons(arg) {
// bunch of code
};
или
function unnecessary(arg) {
// bunch of code
}
Точки с запятой после объявления функций не нужны.
Грамматика FunctionDeclaration
описана в спецификация следующим образом:
function Identifier ( FormalParameterListopt ) { FunctionBody }
Нет точки с запятой, грамматически требуемой, но может удивиться, почему?
Точки с запятой служат для разделения операторов друг от друга, а FunctionDeclaration
не является выражением.
FunctionDeclarations
оцениваются до того, как код входит в исполнение, hoisting является распространенным словом, используемым для объяснения этого поведения.
Термины "объявление функции" и "оператор функции" часто ошибочно используются взаимозаменяемо, поскольку в спецификации ECMAScript нет оператора функций, однако существуют некоторые реализации, которые включают в себя функцию в грамматике, - возможно, Mozilla- но опять же это нестандартно.
Однако точки с запятой всегда рекомендуются там, где вы используете FunctionExpressions
, например:
var myFn = function () {
//...
};
(function () {
//...
})();
Если вы опустите точку с запятой после первой функции в приведенном выше примере, вы получите полностью нежелательные результаты:
var myFn = function () {
alert("Surprise!");
} // <-- No semicolon!
(function () {
//...
})();
Первая функция будет выполнена немедленно, так как скобки, окружающие второй, будут интерпретироваться как Arguments
вызова функции.
Рекомендуемые лекции:
FunctionDeclaration
vs FunctionExpression
)Я использую их после объявления функции как переменной:
var f = function() { ... };
но не после определений классического стиля:
function f() {
...
}
JS Lint - это де-факто соглашение, и он не указывает точку с запятой после тела функции. См. Раздел "Точка с запятой".
Просто оставайтесь последовательными! Они не нужны, но я лично их использую, потому что большинство методов минимизации полагаются на полуточку (например, Packer).
Действительно, это зависит от ваших предпочтений. Мне нравится заканчивать строки кода полуколонами, потому что я привык к Java, С++, С# и т.д., Поэтому я использую те же стандарты для кодирования в javascript.
Я обычно не заканчиваю объявления функций в полуколонах, но это только мои предпочтения.
Браузеры будут запускать его в любом случае, но, возможно, когда-нибудь они придумают более строгие стандарты, регулирующие это.
Пример кода, который я бы написал:
function handleClickEvent(e)
{
// comment
var something = true; // line of code
if (something) // code block
{
doSomething(); // function call
}
}
На самом деле это больше, чем проблема согласования или согласованности.
Я уверен, что не помещать точки с запятой после того, как каждое утверждение замедляет внутренний синтаксический анализатор, потому что ему нужно выяснить, где заканчивается конец инструкции. Хотелось бы, чтобы у меня было несколько удобных номеров, чтобы вы могли это подтвердить, но, может быть, вы сами это сделаете.:)
Кроме того, когда вы сжимаете или уменьшаете код, отсутствие полуколоней может привести к уменьшенной версии вашего script, который не сделает то, что вам нужно, потому что все пустое пространство уходит.
Когда я минимизировал свои скрипты, я понял, что мне нужно использовать точку с запятой для функций, которые начинаются со знака равенства. если вы определяете функцию как var, да, вам нужно использовать точку с запятой.
нужна точка с запятой
var x = function(){};
var x = new function(){};
this.x = function(){};
не нужно ставить точку с запятой
function x(){}
ПРОСТО:
Рекомендуется оставлять точки с запятой ;
после фигурных скобок. Они считаются лучшей практикой в течение многих лет.
Одним из преимуществ их использования всегда является то, что вы хотите минимизировать свой JavaScript.
Как минимизация Javascript, помогает немного уменьшить размер файла.
Но как для лучшей практики и ответа выше, не рекомендуется использовать его после тега функции.
Если вы НЕ используете точки с запятой и если хотите минимизировать (как это делают многие разработчики, если их сайт много обслуживает) JavaScript) вы можете получить все виды ошибок/предупреждений.
точка с запятой после функции не нужна Использование этого или нет, не вызывает ошибок в вашей программе. однако, если вы планируете минимизировать свой код, то лучше использовать точку с запятой после функций. скажем, например, у вас есть код, подобный приведенному ниже
//file one
var one=1;
var two=2;
function tryOne(){}
function trytwo(){}
и
//file two
var one=1;
var two=2;
function tryOne(){};
function trytwo(){};
когда вы минимизируете оба, вы получите следующее как вывод
//file one
var one=1;var two=2;function tryOne(){}
function trytwo(){}
и
//file two
var one=1;var two=2;function tryOne(){};function trytwo(){};