for (...) bez instrukcji

2

Kolejne pytanie dot. poprawności zapisu.
Taka konstrukcja. Formalnie niezgodna z tym, co stanowi MDN, gdyż instrukcja powinna być zapisana za pętlą. Jednak wpisana w CodePen działa. Do sprawdzenia natchnęła mnie lektura czegoś o PHP. To wielki błąd czy w ogóle co, bo nie ukrywam - sama się zdziwiłam.

for(i = 1; i<=10; console.log(i++));
4

Pisana w konsoli też zadziała. Żadna to filozofia. Bardziej chodzi o czytelność kodu, i ogólnie przyjęte standardy. Jak piszesz dla siebie to możesz nawet za pomocą emotikonek. Pamiętaj, że Twój kod czytają też inni, i nie każdego kręci taka konstrukcja.
Poza tym to zadziała w przypadku wypisania za pomocą console.log, a co jeśli for jest bardziej rozbudowany, i zawiera więcej kodu? Problem solved :P

3

Formalnie niezgodna z tym, co stanowi MDN, gdyż instrukcja powinna być zapisana za pętlą.

Formalnie zgodna z tym, co stanowi MDN, ponieważ wspominają: [final-expression is] An expression to be evaluated at the end of each loop iteration. [...] Generally used to update or increment the counter variable. - żadna część tego zdania nie wyklucza wyrażeń w stylu i = f(i), console.log(i += i); itd.

3

Ciekawostką pozostaje fakt, że takie coś też przejdzie*:

for(let i = 1; i <= 10; {
  x: console.log("A teraz, proszę Państwa, wypisujemy liczbę całkowitą " + i++)
}.x);

Jednak zdecydowanie odradzam takie pisanie. W JavaScripcie efekty uboczne mogą być zaskakujące.


* UPDATE: A przynajmniej przejdzie na Firefoksie 67.0.

1

Dziękuję, wszystkim, pozostaje się zastosować.

1 użytkowników online, w tym zalogowanych: 0, gości: 1