Недавно я заметил, что многие JavaScript-файлы в Интернете начинаются ;
сразу после раздела комментариев.
Например, код этого плагина jQuery начинается с:
/**
* jQuery.ScrollTo
* Copyright (c) 2007-2008 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
* Dual licensed under MIT and GPL.
* Date: 9/11/2008
.... skipping several lines for brevity...
*
* @desc Scroll on both axes, to different values
* @example $('div').scrollTo( { top: 300, left:'+=200' }, { axis:'xy', offset:-20 } );
*/
;(function( $ ){
Почему файл должен начинаться с ;
? Я вижу это соглашение и в серверных JavaScript-файлах.
Каковы преимущества и недостатки этого?
return
утверждение как последнюю вещь в сценарии, не так ли? Возвращение на верхний уровень не имеет смысла. Это должно быть что-то еще, верно?return
заявлении не получает выполняется, так что не имеет смысла для конкатенации. По крайней мере, там}
пропал.Я считаю (хотя я не уверен, поэтому, пожалуйста, не набрасывайтесь на меня), что это обеспечит закрытие любого предыдущего заявления из другого файла. В худшем случае это было бы пустым оператором, но в лучшем случае можно было бы избежать попытки отследить ошибку в этом файле, когда незавершенный оператор фактически пришел сверху.
источник
Рассмотрим этот пример:
Что произойдет, так это то, что это будет оценено следующим образом:
Поэтому то, что
a
возвращается, будет рассматриваться как функция, которую пытаются инициализировать.Это в основном для предотвращения ошибок при попытке объединить файлы в один файл:
a.js
b.js
Если мы объединяем эти файлы вместе, это вызовет проблемы.
Поэтому не забывайте ставить
;
перед собой(
и, возможно, также в нескольких других местах. Btw.var a = 1;;;var b = 2;;;;;;;;;var c = a+b;
это совершенно правильный JavaScriptисточник