Какова цель запуска полутень в начале JavaScript?

Возможный дубликат:
Что делает лидирующая точка с запятой в библиотеках JavaScript?

Я заметил, что многие плагины jQuery начинаются с

;(function(){ /* something in here */ })();

Я просто задавался вопросом, для чего была начальная точка с запятой, а также пустые круглые скобки в конце.

Ответ 1

Полу-двоеточие есть, если вы включите этот script сразу после некоторого "плохого" script, который неправильно закрывает свою последнюю строку с помощью двоеточия. В этом случае возможно, что два сценария будут объединены и приведут к недействительному коду. Например, если вы объединяете несколько script в один ответ.

Функция() в конце выполняет функцию. Это создает закрытие. Частные переменные и методы могут быть объявлены в рамках этой функции, к которой невозможно получить доступ извне script.

Ответ 2

Эта конструкция:

(function(){ /* something in here */ })()

Используется для создания новой области в Javascript.

Подробнее о области функций здесь.

Что касается точки с запятой, я никогда не видел ее раньше. Я думаю, что это безопасно, когда вы объединяете несколько сценариев, поскольку в некоторых случаях точки с запятой являются необязательными в конце файла.