Forum: PC-Programmierung Javascript: Unterschied zwischen var und let?


von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Ich kenne die diesbezüglichen Beschreibungen aus JS-Büchern und 
zahllosen Webseiten, aber ich habe das Gefühl, die haben alle nur von 
einander abgeschrieben und ich verstehe den Unterschied nicht wirklich.

Der Unterschied soll in der Verfügbarkeit als globale und lokale 
Variable liegen. Ich weiss, was der Unterschied zwischen global und 
lokal ist, darüber müssen wir nicht diskutieren. Aber wenn ich einen 
praktischen Test mache, kann ich bei der Verwendung von var und let 
keinerlei Unterschied entdecken. Wo ist das Detail, das ich übersehe?
1
 <script>
2
  var a = 1;
3
  let b = 2;
4
5
   function foo()
6
   {
7
     var c = 3;
8
     let d = 4;
9
   }
10
11
   ...
12
13
 </script>

Ich kann also a und b sowohl zwischen den script-tags (also global) 
problemlos benutzen, als auch in der Funktion. Und c und d existieren 
lokal nur innerhalb der Funktion ... wo ist jetzt der Unterschied, ob 
ich die Variablen mit var oder let deklariere?

: Bearbeitet durch User
von Thomas W. (Gast)


Lesenswert?


von Mario M. (thelonging)


Lesenswert?

Nicht global/lokal sondern Funktion/Block.
https://www.mediaevent.de/javascript/let.html

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Ich glaub', ich habs kapiert.

Ich habe bisher immer var verwendet und diesbezüglich noch nie ein 
Problem gehabt, dazu schreibe ich einfach viel zu "sauber". Ich weiss, 
das klingt etwas überheblich, mancher nennt es vtl. auch nur "old 
style".

Ich bin aus "stilistischen" Gründen bisher nie auf die Idee gekommen, 
z.B. innerhalb eines if-Blockes eine neue Variable zu erstellen.

Na gut, man kann, muss es aber wohl nicht nutzen ...

von Noch ein Kommentar (Gast)


Lesenswert?

Hmmm... gibt wohl unterschiedliche Ansichten über sauberen Code.

Andere Leute vertreten die Ansicht, alles, was nur innerhalb eines 
Blocks benutzt wird, soll außerhalb erst gar nicht sichtbar sein.

Zu diesen Leuten gehören auch die Copy&Paste Programmierer. Wenn die 
einen Block in ihren Code übernehmen, wollen die alle 
Variablendeklarationen gleich mit kopieren.

Und dann gibt es noch die echten "old style" Programmierer. Benutzen 
grundsätzlich nur Lisp. Wenn ein Block eine Variable braucht, legen die 
eine eigene Funktion an.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.