Rozumiem, że dobrze jest używać składni średników po wszystkich instrukcjach w JavaScript, ale czy ktoś wie dlaczego instrukcje if/else nie wymagają ich po nawiasach klamrowych?Dlaczego średniki nie są używane po instrukcjach if/else?
Odpowiedz
- średnik jest używany do zakończenia jednej instrukcji
{
i}
rozpocząć i zamknąć grupę sprawozdania
Zasadniczo if-else
muszą być przestrzegane przez każdą oświadczenia lub grupy oświadczeń.
if-else
następuje stwierdzenie:
if (condition) statement;
if (condition); // followed by a statement (an empty statement)
if-else
następnie grupy stwierdzeń:
if (condition) {
statement;
statement;
}
if (condition) {
// followed by a group of statements of zero length
}
if-else
musi kończyć się ;
jeśli to jest po jednej instrukcji. if-else
nie kończy się na ;
, po którym następuje grupa instrukcji, ponieważ ;
służy do zakończenia pojedynczej instrukcji i nie jest używana do kończenia grupy instrukcji.
elokwentnie umieścić. – Orangepill
Nie zgadzam się z "nawet jeśli-else musi kończyć się;". Każde wyrażenie w javascript nie musi kończyć się; FYI. Nie ma ścisłej zasady jako takiej. – Vineeth
Każda instrukcja, która nie jest zakończona kontekstualnie (tj. Przez nawiasy klamrowe) potrzebuje; – Orangepill
Ponieważ same nawiasy klamrowe są znakami kończącymi.
Są to znaki, które zawierają złożony blok instrukcji i są wewnętrznie zakończone. To jak wstawianie kropki na końcu zdania, to sygnalizuje parserowi, że myśl jest kompletna.
Podczas gdy jest całkowicie brzydki, ważne jest zawijanie każdej instrukcji w {} i pomijanie;
Ale można pominąć; przez zawijanie w {} – Orangepill
Zdecydowanie nie przekazuje js lint – FlavorScape
Prawdziwą odpowiedzią jest to, że wiele współczesnych języków skopiowało swoją składnię z C, która ma tę właściwość. JavaScript jest jednym z tych języków.
C pozwala bloki komunikat
{ ... }
(które nie wymagają zakończenia średników) mają być stosowane tam, gdzie mogą być stosowane oświadczenia. Tak więc możesz używać bloków instrukcji jako klauzul tam i potem, bez średników.
Jeśli umieścisz instrukcję pojedyncza w klauzuli then- lub else, będziesz musiał zakończyć ją średnikiem. Znowu, tak jak w C, z dodatkowym skręceniem JavaScript; jest opcjonalny na końcu wiersza, jeśli wstawienie go nie spowodowałoby błędu składni.
- 1. Czy w instrukcjach javascript obowiązują średniki?
- 2. Dlaczego używane są anonimowe funkcje używane w strukturze kodu JavaScript?
- 3. Dlaczego Collection.checkedMap i znajomi nie są częściej używane?
- 4. Dlaczego Resharper uważa, że te wyliczenia nie są nigdy używane?
- 5. Ostrzeżenie "Brakujące średniki" Aptany
- 6. Dlaczego Ternary Operacja daje nullpointer, gdy jego odpowiednik ifelse nie?
- 7. Dlaczego instrukcje R ifelse R nie mogą zwracać wektorów?
- 8. Dlaczego zachowuje się inaczej w instrukcjach for/while, a nie w instrukcjach if/try?
- 9. Gdzie są używane konstruktory wirtualne?
- 10. else if() {} VS ifelse()
- 11. Opcje korzenia zasobów Vue nie są używane?
- 12. Dlaczego w projektach JavaScript używane są złe praktyki niepożądane?
- 13. określają, które pakiety są używane.
- 14. Dlaczego wiodące zera są używane do reprezentowania liczb ósemkowych?
- 15. Dlaczego często używane są metody pomocnicze w JavaScript?
- 16. Ifelse() z trzech warunków
- 17. Do czego są używane silnie połączone komponenty?
- 18. Jakie soczewki są używane/przydatne dla?
- 19. Dlaczego angular2 szablon zmienne lokalne nie są używane w szablonach przy użyciu * ngIf
- 20. Pierścienie uprawnień procesora: dlaczego pierścienie 1 i 2 nie są używane?
- 21. używanie Reduce/do.call z ifelse
- 22. Jak znaleźć kroki Ogórek, które nie są używane
- 23. Parametry RegisterClientScriptBlock są używane w rzeczywistych scenariuszach?
- 24. Dlaczego krotki nie są niszczone podczas iteracji po tablicy krotek?
- 25. Dlaczego przyciski link nie są wyszarzone po wyłączeniu w FireFox?
- 26. Dlaczego NSUserDefaults nie są czytane po wyczerpaniu baterii IOS7
- 27. Dlaczego zdarzenia nie są uruchamiane po drugim renderowaniu w Backbone.js?
- 28. Typy tabel definiowane przez użytkownika SQL: Dlaczego możemy je usunąć, jeśli nie są używane jako parametr?
- 29. Realistycznie, jakie funkcje pthreads są zazwyczaj używane?
- 30. Dlaczego nieprzeładowane ustawienia użytkownika nie są załadowane?
'while {} do' i 'for() {}' również mają tę właściwość. –
Chodzi o gramatykę języka. Wiesz, co to jest, poszukaj "Oświadczenia" [tutaj] (http://www-archive.mozilla.org/js/language/grammar14.html). – acdcjunior
[Kiedy należy używać średnika po nawiasach klamrowych?] (Http://stackoverflow.com/questions/2717949/when-should-i-use-a-semicolon-after-curly-braces) –