JS-Tutorial

JS-HAUS JS-Einführung JS Wohin JS-Ausgabe JS-Anweisungen JS-Syntax JS-Kommentare JS-Variablen JS Let JS Konst JS-Operatoren JS-Arithmetik JS-Aufgabe JS-Datentypen JS-Funktionen JS-Objekte JS-Ereignisse JS-Strings JS-String-Methoden Suche nach JS-Strings JS-String-Vorlagen JS-Nummern JS-Zahlenmethoden JS-Arrays JS-Array-Methoden JS-Array-Sortierung JS-Array-Iteration JS-Array-Konstante JS-Daten JS-Datumsformate JS Date Get-Methoden JS-Datumssatzmethoden JS Math JS Zufällig JS Boolesche Werte JS-Vergleiche JS-Bedingungen JS-Schalter JS-Schleife für JS-Schleife für In JS-Schleife für Of JS-Schleife While JS Pause JS-Iterables JS-Sets JS-Karten JS Typeof JS-Typkonvertierung JS Bitweise JS RegExp JS-Fehler JS-Bereich JS Heben Strenger JS-Modus JS dieses Schlüsselwort JS-Pfeilfunktion JS-Klassen JS JSON JS-Debugging JS-Styleguide JS Best Practices JS-Fehler JS-Leistung JS Reservierte Wörter

JS-Versionen

JS-Versionen JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Edge JS-Geschichte

JS-Objekte

Objektdefinitionen Objekteigenschaften Objektmethoden Objektanzeige Objektzugriffsmethoden Objektkonstruktoren Objekt-Prototypen Objekt-Iterables Objektsätze Objektkarten Objektreferenz

JS-Funktionen

Funktionsdefinitionen Funktionsparameter Funktionsaufruf Funktionsaufruf Funktion anwenden Funktionsschließungen

JS-Klassen

Klasse Einführung Klassenvererbung Klasse statisch

JS asynchron

JS-Rückrufe JS asynchron JS verspricht JS Async/Warten

JS-HTML-DOM

DOM-Einführung DOM-Methoden DOM-Dokument DOM-Elemente DOM-HTML DOM-Formulare DOM-CSS DOM-Animationen DOM-Ereignisse DOM-Ereignis-Listener DOM-Navigation DOM-Knoten DOM-Sammlungen DOM-Knotenlisten

Stückliste des JS-Browsers

JS-Fenster JS-Bildschirm JS-Standort JS-Geschichte JS-Navigator JS-Popup-Warnung JS-Timing JS-Cookies

JS-Web-APIs

Web-API-Einführung Web Forms-API Webprotokoll-API Webspeicher-API Web Worker-API Web-Fetch-API Web-Geolocation-API

JS AJAX

AJAX-Einführung AJAX-XMLHttp AJAX-Anfrage AJAX-Antwort AJAX-XML-Datei AJAX-PHP AJAX ASP AJAX-Datenbank AJAX-Anwendungen AJAX-Beispiele

JS JSON

JSON-Einführung JSON-Syntax JSON vs. XML JSON-Datentypen JSON-Parsing JSON-Stringify JSON-Objekte JSON-Arrays JSON-Server JSON-PHP JSON-HTML JSON JSONP

JS vs. jQuery

jQuery-Selektoren jQuery-HTML jQuery-CSS jQuery-DOM

JS-Grafik

JS-Grafik JS-Leinwand JS Plotly JS Chart.js JS Google-Diagramm JS D3.js

JS-Beispiele

JS-Beispiele JS-HTML-DOM JS-HTML-Eingabe JS-HTML-Objekte JS-HTML-Ereignisse JS-Browser JS-Editor JS-Übungen JS-Quiz JS-Zertifikat

JS-Referenzen

JavaScript-Objekte HTML-DOM-Objekte


JavaScript-Let

Das letSchlüsselwort wurde in ES6 (2015) eingeführt .

Mit definierte Variablen letkönnen nicht neu deklariert werden.

Mit definierte Variablen letmüssen vor der Verwendung deklariert werden.

Mit definierte Variablen lethaben einen Blockbereich.

Kann nicht neu deklariert werden

Mit definierte Variablen letkönnen nicht neu deklariert werden .

Sie können eine Variable nicht versehentlich neu deklarieren.

Mit letkönnen Sie dies nicht tun:

Beispiel

let x = "John Doe";

let x = 0;

// SyntaxError: 'x' has already been declared

Mit varkönnen Sie:

Beispiel

var x = "John Doe";

var x = 0;

Bereich blockieren

Vor ES6 (2015) hatte JavaScript nur Global Scope und Function Scope .

ES6 hat zwei wichtige neue JavaScript-Schlüsselwörter eingeführt: letund const.

Diese beiden Schlüsselwörter stellen den Blockbereich in JavaScript bereit.

Auf Variablen, die innerhalb eines { }-Blocks deklariert sind, kann nicht von außerhalb des Blocks zugegriffen werden:

Beispiel

{
  let x = 2;
}
// x can NOT be used here

Mit dem Schlüsselwort deklarierte Variablen varkönnen KEINEN Blockbereich haben.

Auf innerhalb eines { }-Blocks deklarierte Variablen kann von außerhalb des Blocks zugegriffen werden.

Beispiel

{
  var x = 2;
}
// x CAN be used here

Variablen umdeklarieren

Das erneute Deklarieren einer Variablen mit dem varSchlüsselwort kann zu Problemen führen.

Durch die Neudeklaration einer Variablen innerhalb eines Blocks wird auch die Variable außerhalb des Blocks neu deklariert:

Beispiel

var x = 10;
// Here x is 10

{
var x = 2;
// Here x is 2
}

// Here x is 2

Das Neudeklarieren einer Variablen mit dem letSchlüsselwort kann dieses Problem lösen.

Durch die Neudeklaration einer Variablen innerhalb eines Blocks wird die Variable außerhalb des Blocks nicht neu deklariert:

Beispiel

let x = 10;
// Here x is 10

{
let x = 2;
// Here x is 2
}

// Here x is 10

Browser-Unterstützung

Das letSchlüsselwort wird in Internet Explorer 11 oder früher nicht vollständig unterstützt.

Die folgende Tabelle definiert die ersten Browserversionen mit voller Unterstützung für das letSchlüsselwort:

Chrome 49 Edge 12 Firefox 44 Safari 11 Opera 36
Mar, 2016 Jul, 2015 Jan, 2015 Sep, 2017 Mar, 2016


Neudeklaration

Das erneute Deklarieren einer JavaScript-Variablen mit varist überall in einem Programm zulässig:

Beispiel

var x = 2;
// Now x is 2

var x = 3;
// Now x is 3

Mit letist die Neudeklaration einer Variablen im selben Block NICHT erlaubt:

Beispiel

var x = 2;    // Allowed
let x = 3;    // Not allowed

{
let x = 2;    // Allowed
let x = 3     // Not allowed
}

{
let x = 2;    // Allowed
var x = 3     // Not allowed
}

Das Umdeklarieren einer Variablen mit let, in einem anderen Block, IST erlaubt:

Beispiel

let x = 2;    // Allowed

{
let x = 3;    // Allowed
}

{
let x = 4;    // Allowed
}

Heben lassen

Mit definierte Variablen varwerden nach oben gehoben und können jederzeit initialisiert werden.

Bedeutung: Sie können die Variable verwenden, bevor sie deklariert wird:

Beispiel

Das ist in Ordnung:

carName = "Volvo";
var carName;

Wenn Sie mehr über Hoisting erfahren möchten, studieren Sie das Kapitel JavaScript Hoisting .

Mit definierte Variablen letwerden ebenfalls an den Anfang des Blocks gehoben, aber nicht initialisiert.

Bedeutung: Die Verwendung einer letVariablen, bevor sie deklariert wird, führt zu einem ReferenceError:

Beispiel

carName = "Saab";
let carName = "Volvo";