Średniki po deklaracjach funkcji nie są konieczne .
Gramatyka a FunctionDeclaration
jest opisana w specyfikacji w następujący sposób:
function Identifier ( FormalParameterListopt ) { FunctionBody }
Gramatyka nie wymaga średnika, ale może zastanawiać się, dlaczego?
Średniki służą do oddzielania od siebie instrukcji , a a FunctionDeclaration
nie jest instrukcją .
FunctionDeclarations
są oceniane przed uruchomieniem kodu, podnoszenie jest powszechnym słowem używanym do wyjaśnienia tego zachowania.
Terminy „deklaracja funkcji” i „instrukcja funkcji” są często błędnie używane zamiennie, ponieważ nie ma instrukcji funkcji opisanej w specyfikacji ECMAScript, jednak istnieją pewne implementacje, które zawierają instrukcję funkcji w swojej gramatyce, w szczególności Mozillę, ale znowu to jest niestandardowy.
Jednak średnice są zawsze zalecane w przypadku używania FunctionExpressions
, na przykład:
var myFn = function () {
//...
};
(function () {
//...
})();
Jeśli pominiesz średnik po pierwszej funkcji w powyższym przykładzie, otrzymasz całkowicie niepożądane wyniki:
var myFn = function () {
alert("Surprise!");
} // <-- No semicolon!
(function () {
//...
})();
Pierwsza funkcja zostanie wykonana natychmiast, ponieważ nawiasy otaczające drugą będą interpretowane jako Arguments
wywołanie funkcji.
Polecane wykłady:
Używam ich po deklaracjach funkcji jako zmiennej:
ale nie po definicjach w stylu klasycznym:
źródło
JS Lint jest de facto konwencją i nie podaje średnika po treści funkcji. Zobacz sekcję „Średnik” .
źródło
Po prostu bądź konsekwentny! Nie są potrzebne, ale ja osobiście ich używam, ponieważ większość technik minifikacji opiera się na średniku (na przykład Packerze ).
źródło
Naprawdę zależy tylko od twoich preferencji. Lubię kończyć wiersze kodu średnikami, ponieważ jestem przyzwyczajony do Java, C ++, C # itd., Więc używam tych samych standardów do kodowania w javascript.
Zwykle jednak nie kończę deklaracji funkcji średnikami, ale to tylko moje preferencje.
Przeglądarki będą działać tak czy inaczej, ale może kiedyś wymyślą bardziej rygorystyczne normy.
Przykład kodu, który napisałbym:
źródło
W rzeczywistości jest to coś więcej niż kwestia konwencji lub spójności.
Jestem całkiem pewien, że nie umieszczanie średników po każdej instrukcji spowalnia wewnętrzny parser, ponieważ musi dowiedzieć się, gdzie jest koniec instrukcji. Chciałbym mieć jakieś przydatne numery, abyś mógł to pozytywnie potwierdzić, ale może sam możesz to zrobić w Google. :)
Ponadto, gdy kompresujesz lub minimalizujesz kod, brak średników może prowadzić do zminimalizowanej wersji skryptu, która nie robi tego, co chciałeś, ponieważ cała biała przestrzeń znika.
źródło
Kiedy zminimalizowałem swoje skrypty, zdałem sobie sprawę, że muszę używać średnika dla funkcji, które zaczynają się od znaku równości. jeśli zdefiniujesz funkcję jako var, tak, musisz użyć średnika.
potrzebujesz średnika
nie trzeba średnika
źródło
PROSTY:
Dobrą praktyką jest pozostawianie średników
;
po zakończeniu nawiasów klamrowych funkcji. Od lat są uważane za najlepszą praktykę.Jedną z zalet korzystania z nich jest zawsze, gdy chcesz zminimalizować JavaScript.
Minimalizując JavaScript, pomaga nieco zmniejszyć rozmiar pliku.
Ale jeśli chodzi o najlepszą praktykę i powyższą odpowiedź, nie zaleca się używania jej po znaczniku funkcji.
Jeśli NIE użyjesz średników i jeśli chcesz zmniejszyć (jak wielu programistów lubi robić, jeśli ich witryna obsługuje dużo JavaScript), możesz uzyskać różnego rodzaju błędy / ostrzeżenia.
źródło
średnik po funkcji nie jest konieczny przy jej użyciu lub nie, nie powoduje błędów w twoim programie. jeśli jednak planujesz zminimalizować swój kod, dobrym pomysłem jest użycie średników po funkcjach. powiedzmy na przykład, że masz kod podobny do tego poniżej
i
kiedy zminimalizujesz oba, otrzymasz następujące dane wyjściowe
Pamiętaj, że komentarze służą wyłącznie ilustracji
i
źródło