W kilku bibliotekach JavaScript widziałem na samym początku ten zapis:
/**
* Library XYZ
*/
;(function () {
// ... and so on
Chociaż czuję się doskonale ze składnią „funkcji wykonywanej natychmiast”
(function(){...})()
Zastanawiałem się, do czego służy wiodący średnik. Wszystko, co mogłem wymyślić, to to, że jest to ubezpieczenie. Oznacza to, że jeśli biblioteka jest osadzona w innym, błędnym kodzie, służy jako „ostatnia instrukcja kończy się tutaj najpóźniej”.
Czy ma jakieś inne funkcje?
javascript
syntax
Boldewyn
źródło
źródło
Odpowiedzi:
Umożliwia bezpieczne łączenie kilku plików JavaScript w jeden, aby obsługiwać je szybciej jako jedno żądanie HTTP.
źródło
(function(){...})()(function(){...})()
.Właściwie najlepsza odpowiedź została udzielona w pytaniu, więc dla jasności zapiszę to tutaj:
Początek
;
przed natychmiastowo wywołanymi wyrażeniami funkcyjnymi ma na celu zapobieganie błędom podczas dołączania pliku podczas konkatenacji do pliku zawierającego wyrażenie, które nie zostało poprawnie zakończone rozszerzeniem;
.Najlepszą praktyką jest kończenie wyrażeń średnikami, ale jako zabezpieczenie należy również użyć wiodącego średnika.
źródło
"\n"
ze";\n"
nie ma sensu.Źródło:
JavaScript: The Definitive Guide, 6. wydanie
źródło
Nazywa się to początkowym średnikiem.
Jego głównym celem jest ochrona przed poprzedzającym kodem, który został nieprawidłowo zamknięty, co może powodować problemy. Zapobiegnie temu średnik. Jeśli poprzedni kod został nieprawidłowo zamknięty, nasz średnik to poprawi. Jeśli był poprawnie zamknięty, nasz średnik będzie nieszkodliwy i nie będzie żadnych skutków ubocznych.
źródło
Jednowierszową odpowiedzią jest bezpieczne połączenie wielu plików JavaScript. Używanie średnika nie powoduje problemu.
Załóżmy, że masz wiele funkcji:
IIFE 1
IIFE 2
Na konkatenacji może to wyglądać następująco:
Ale jeśli dodasz średnik przed funkcją, będzie to wyglądać tak:
Więc dodając a
;
, zwraca uwagę, czy jakiekolwiek wyrażenie nie jest poprawnie zakończone.Przykład 2
Załóżmy, że masz plik JavaScript ze zmienną:
Kolejny plik JavaScript z pewną funkcją:
Teraz po konkatenacji będzie to wyglądać
Z średnikiem będzie wyglądać następująco:
źródło
Dobrze jest, gdy minimalizujesz kod JavaScript. Zapobiega nieoczekiwanym błędom składniowym.
źródło