Javascript: Unterschied zwischen var und let?

OP (Firma: Q3) #6980837
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?
OP (Firma: Q3) #6980868
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 ...
Gast #6980940
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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.