consdata.com
Blog techniczny Blog biznesowy Dział HR
EN
javascript

Czy wiesz co się dzieje, kiedy nie stawiasz średników w JS?

author Piotr Grobelny
2 sierpnia 2021

Każdemu zdarza się czasem zapomnieć postawić średnika na końcu linijki. Powinny to wyłapywać reguły zawarte w narzędziach takich jak TSLint, ESList, lecz czasami mimo ich pomocy zapominamy o tym. I co wtedy? Niby nic się nie dzieje, a kod dalej działa według naszej myśli, tylko dlaczego z jakiegoś powodu wszyscy każą stawiać te średniki?

Automatic Semicolon Insertion

JavaScript nie wymaga od nas stawiania średników. Posiada automat (Automatic Semicolon Insertion, w skrócie ASI), który interpretuje nasz kod i wstawia je za nas. Opiera się w skrócie na kilku zasadach: kiedy kończymy linijkę używając “}”, kiedy jest to koniec pliku, kiedy w linijce użyjemy któregoś z słów kluczowych: return, break, throw, continue oraz kiedy nowa linijka powoduje błąd w połączeniu z następną.

Nie powinniśmy jednak opierać w pełni na tych zasadach, bo łatwo można popełnić błąd, który ASI zinterpretuje w zaskakujący sposób:

const test = 12
['c','d'].forEach((letter) => console.log(letter))
// Cannot read property 'forEach' of undefined

Dzieje się tak, ponieważ JS spróbował połączyć ze sobą 12 i [‘c’,’d’].

Podobny przykład:

var a = 1
var b = a
(a+b).toString()
// Uncaught TypeError: a is not a function

Co powinniśmy w takim razie robić? Nie opierać się na ASI ponieważ, nie jesteśmy w stanie całkowicie zdać się na niego. Stawiajmy wszędzie średniki, żeby uniknąć niekonsekwencji w naszym kodzie.

Po więcej informacji odsyłam do dokumentacji.

Najnowsze wpisy

  • Czy wiesz, że w Jest można automatycznie testować dostępność (a11y)?
  • Dostępność w PDF - dokumenty bez barier
  • Czy wiesz, że z pomocą @starting-style można animować elementy z display: none za pomocą samego CSS?
Dołącz do nas

  • SENIOR FULLSTACK DEVELOPER (JAVA + ANGULAR) Poznań (hybrydowo) lub zdalnie UoP 14 900 - 20 590 PLN brutto
    B2B 19 680 - 27 220 PLN netto
  • REGULAR FULLSTACK DEVELOPER (JAVA + ANGULAR) Poznań (hybrydowo) lub zdalnie UoP 11 300 - 15 900 PLN brutto
    B2B 14 950 - 21 000 PLN netto
  • ZOBACZ WSZYSTKIE OGŁOSZENIA

newsletter

techniczny

Zapisz się

Podobne wpisy

post-image
wcag

Czy wiesz, że w Jest można automatycznie testować dostępność (a11y)?

author
Wojciech Stolarski 19 maj 2025
post-image
WCAG

Dostępność w PDF - dokumenty bez barier

author
Kacper Hoffman 28 kwi 2025
post-image
angular

Czy wiesz, że z pomocą @starting-style można animować elementy z display: none za pomocą samego CSS?

author
Piotr Tatarski 7 kwi 2025
Dołącz do nas

  • SENIOR FULLSTACK DEVELOPER (JAVA + ANGULAR) Poznań (hybrydowo) lub zdalnie UoP 14 900 - 20 590 PLN brutto
    B2B 19 680 - 27 220 PLN netto
  • REGULAR FULLSTACK DEVELOPER (JAVA + ANGULAR) Poznań (hybrydowo) lub zdalnie UoP 11 300 - 15 900 PLN brutto
    B2B 14 950 - 21 000 PLN netto
  • ZOBACZ WSZYSTKIE OGŁOSZENIA

Zapisz się na

newsletter

techniczny

consdata.com
  • Kontakt

    • sales@consdata.com
    • +48 61 41 51 000

  • Biuro

    • K9Office
      Krysiewicza 9/14
      61-825 Poznań
      Polska

  • Rozwiązania

    • Eximee
    • Kouncil
  • Blog Dołącz do nas
Copyright © 2024 Consdata. All rights reserved. Privacy Policy & Cookies
Chcemy używać plików cookie oraz skryptów podmiotów trzecich do polepszania funkcjonowania tej strony Zgadzam się