Scope
Jag märker att jag är lite förvirrad över scope, den här frågan t.ex.
Svaret är här deklarationen på rad 3. Men jag undrar: är det så att x:et på rad 3 i sin tur refererar till x:et på rad 2? Så att det understrukna x:et på rad 5 indirekt refererar till x:et på rad 2 också? Eller har x:en på rad 2 och 3 inte med varandra att göra?
Nej. x:et på rad 3 (och 5) har ingenting att göra med x:et på rad 2. Det är bara en slump att de har samma namn. På rad 3 har vi en funktionsdefinition där x är en parameterdefinition och inte en referens till x på rad 2.
Då är jag med! Tack!
Kom på en till sak jag undrar: Om man på rad 4 i stället hade skrivit const x = g(y), hade x:et på rad 4 då fortfarande refererat till x:et på rad 3? Eller blir det "sitt eget" om man definierar det som en konstant?
Om du försöker deklarera x som konstant ska du få ett felmeddelande som säger att x har redan deklarerats.
(Skillnaden till det ursprungliga problemet är att du försöker redeklarera x i samma scope som redan har ett x.)
Ah, toppen! Tack för pedagogisk förklaring.