🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.javascript
Article #51474

Re: Automatyczne wstawianie średników - pytanie

#51474
From: Jordan Szubert
Date: Wed, 15 Oct 2014 18:11
53 lines
2708 bytes
Dnia 15-10-2014 o 20:06:16 Piotrek <pilarp@poczta.onet.pl> napisał(a):

> W 6. edycji "JavaScript The Definitive Guide", w podrozdziale
> 2.5 (Optional Semicolons), znajduje się takie stwierdzenie:
>
> "JavaScript treats a line break as a semicolon if the next
> nonspace character cannot be interpreted as a continuation of
> the current statement",
>
> a zaraz pod nim podany jest taki przykład:
>
> var a
> a
> =
> 3
> console.log(a)
>
> Autor twierdzi, że zostanie on zinterpretowany jako:
>
> var a; a = 3; console.log(a);
>
> tzn. pierwsza linia będzie niejawnie zakończona średnikiem,
> bo bez niego interpreter natrafiłby na niezrozumiały dla niego
> ciąg "var a a".
>
> Taka argumentacja nie przemawia do mnie z dwóch powodów:
>
> 1. Dlaczego niby 2 pierwsze linie miałyby być bez średnika
> zinterpretowane jako "var a a", a nie "var aa" (skąd miałaby
> się brać spacja między dwoma "a")?
>
> 2. Zgodnie z regułką zacytowaną przed przykładem, JavaScript
> traktuje koniec linii jako średnik jeśli pierwszy różny
> od spacji znak w nowej linii nie może być zinterpretowany
> jako kontynuacja bieżącej instrukcji (zakładam, że jest to
> równoważność, tzn. jeśli ten warunek nie zachodzi, średnik
> nie zostaje automatycznie dodany).
>
> Skoro tak, to dlaczego rozważany przykład
> nie jest rozumiany jako:
>
> var aa = 3; console.log(a);
>
> tzn. dlaczego 4 pierwsze linie nie mogą składać się
> łącznie na deklarację zmiennej o nazwie "aa", połączoną
> z jej inicjalizacją? Pewnie wynika to jakoś z definicji
> języka, ale z zacytowanej regułki nie umiem tego wywnioskować.

zgadywałbym, że wynika to z tej samej reguły, która sprawia że "var a" i  
"vara" to są całkiem inne rzeczy

-- 
Jordan Szubert
Technical Details
Message-ID: <op.xnr942pghilul8@asus7h.home>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
References: <df8855d0-5734-4dee-a9d3-8a149b139a27@googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
Newsgroups: pl.comp.lang.javascript
Subject: Re: Automatyczne wstawianie średników - pytanie
References: <df8855d0-5734-4dee-a9d3-8a149b139a27@googlegroups.com>
Date: Wed, 15 Oct 2014 20:11:16 +0200
MIME-Version: 1.0
From: "Jordan Szubert" <usenet@joru.us.to>
Organization: HELL inc.
Message-ID: <op.xnr942pghilul8@asus7h.home>
User-Agent: Opera Mail/12.17 (Win32)
Lines: 58
NNTP-Posting-Host: 83.27.129.215
X-Trace: 1413396683 unt-rea-a-02.news.neostrada.pl 29616 83.27.129.215:52668
X-Complaints-To: abuse@news.neostrada.pl
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit