То, почему делает JavaScript, должно запуститься с “”;?

Я недавно заметил, что много файлов JavaScript в сети запускается с a ; сразу после раздела комментария.

Например, этот код плагина 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( $ ){

Почему файл должен запуститься с a ;? Я вижу эту конвенцию в серверной стороне файлы JavaScript также.

Каковы преимущества и недостатки выполнения этого?

217
задан ЯegDwight 23 June 2012 в 07:29
поделиться

2 ответа

Я бы сказал, поскольку скрипты часто объединяются и уменьшаются / сжимаются / отправляются вместе, есть шанс, что у последнего парня было что-то вроде:

return {
   'var':'value'
}

в конце последний сценарий без ; в конце. Если у вас в начале есть ; , это безопасно, например:

return {
   'var':'value'
}
;(function( $ ){ //Safe (still, screw you, last guy!)

return {
   'var':'value'
}
(function( $ ){ //Oh crap, closure open, kaboom!

return {
   'var':'value'
};
;(function( $ ){ //Extra ;, still safe, no harm
350
ответ дан 23 November 2019 в 04:14
поделиться

Я считаю (хотя я не уверен, поэтому, пожалуйста, не набрасывайтесь на меня), что это обеспечит закрытие любого предыдущего заявления из другого файла. В худшем случае это будет пустой оператор, но в лучшем случае можно избежать попытки отследить ошибку в этом файле, когда незаконченный оператор действительно поступил сверху.

56
ответ дан 23 November 2019 в 04:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: