In Bezug auf JavaScript sind Variablen das erste wichtigere Konzept, und der Arbeitsmechanismus von Variablen ist das grundlegende Merkmal von JavaScript. Tatsächlich sind Variablen eine Art von Kennung. In diesem Artikel werden im Detail Variablen und Kennungen eingeführt
Definition
Die Kennung ist ein Name, der verwendet wird, um Variablen, Funktionen, Eigenschaften und Parameter zu benennen oder ihn als Markierung für Sprungpositionen in bestimmten Schleifenanweisungen zu verwenden.
// variable var identifier = 123; // Eigenschaften (neues Objekt) .Identifier = 'test'; // Funktions- und Parameter Funktion IDENTIFIERNAME (IDENTIFIER1) {}; // Jump -Tag -Kennzeichnung: für (var i = 0; i <5; i ++) {if (i == 3) {break identifier; }}Im täglichen Leben sind einige Dinge festgelegt und einige Dinge ändern sich. Zum Beispiel sind der Name und der Geburtstag einer Person festgelegt, aber seine Stimmung und sein Alter werden sich im Laufe der Zeit ändern. Leute nennen Dinge, die Variablen ändern
Wenn das Programm den Wert für die zukünftige Verwendung speichern muss, wird es einer Variablen zugewiesen. Variable ist ein Platzhalter zum Speichern von Werten. Sie können einen Verweis auf den Wert über den variablen Namen erhalten.
Namensregeln
In dem Artikel "Lexikonstruktur" stellen wir vor, dass JavaScript eine fallempfindliche Sprache ist. Wie jede andere Programmiersprache behält JavaScript einige Kennungen für sich selbst bei, und reservierte Wörter können nicht als gewöhnliche Kennungen verwendet werden.
[Hinweis] Reservierte Wörter enthalten Schlüsselwörter, zukünftige reservierte Wörter, leere Literale und boolesche Literale
ReservedWord :: Keyword FutherereServeDWord NullLiteral Booleanlitereral
JavaScript Identifier Name darf Buchstaben, Zahlen, Dollar -Zeichen und Unterstriche enthalten (das erste Zeichen darf keine Nummer sein)
// Fehlervorführung 6num // Die Zahl% sum kann zu Beginn nicht verwendet werden // Die speziellen Symbole außer (_ $) können zu Beginn nicht verwendet werden, wie z.
JavaScript ermöglicht Buchstaben und Zahlen (einschließlich Chinesen) im gesamten Satz von Unicode -Zeichen im Kennung. Daher können Programmierer auch nicht englische Sprache oder mathematische Symbole verwenden, um Kennungen zu schreiben
var test text = 'test';
[Anmerkung] Für die Portabilität und das einfache Schreiben verwenden wir normalerweise keine erweiterten ASCII- oder Unicode -Zeichen
Normalerweise ist das Kamelformat das bevorzugte Format für die Benennung von Bezeichnern, der erste Buchstabe ist Kleinbuchstaben und der erste Buchstaben jedes verbleibenden Wortes ist ein Großbuchstaben.
var mymoodtoday = 'glücklich';
Für verschiedene Datentypen verfügt JavaScript über konventionelle Identifikator -Namensregeln
Typ Prefix Beispiel Array (Array) a aitems boolean (boolean) b BisComplete Floating Point Number (float) fPrice -Funktion (Funktion) fn fnhandler Integer (Integer) iiitemCount Object (Objekt) O ODIV1 Regular Expression (Regexp) ReemailCheck String (String) s susername varable () Variante V vanytioning (String) s susername varable () variable v vanytioning
Variable Deklaration
Stellungnahme
In JavaScript sollten Sie vor verwenden, bevor Sie eine Variable verwenden. Die Variable wird unter Verwendung des Schlüsselworts Var (der Abkürzung der Variablen) deklariert.
var i; var sum;
Sie können auch mehrere Variablen über ein VAR -Schlüsselwort deklarieren
var i, sum;
Abtretung
Der Betrieb des Speichers von Werten in Variablen wird als Zuordnung bezeichnet. Nachdem eine Variable zugewiesen wurde, sagen wir, dass die Variable diesen Wert enthält
Der erstmalige Zuordnen einer Variablen wird als Initialisierung bezeichnet
Wir können die anfängliche Zuordnung von Variablen zusammen mit der Variablenerklärung schreiben
var message = 'hello'; var i = 0, j = 0, k = 0;
Wenn die Variable in der VaR -Deklarationsanweisung nicht angegeben ist, obwohl die Variable deklariert ist
VAR-Anweisungen können auch für Schleifen und in Schleifen verwendet werden, wodurch die in der Schleifensyntax verwendete Schleifenvariablen besser deklariert werden können
für (var i = 0; i <10; i ++) console.log (i);
Variablen können bei der Deklaration Werte zugewiesen werden, aber es können keine anderen Operationen wie +=, -= usw. geben.
var a = 2; // ist korrekt var a+= 2; // ist falsch var a = 2 ++; // ist falsch, ++ kann nur für Variablen verwendet werden, nicht für Konstanten
Wiederholung Anweisung
Es ist legal und harmlos, Variablen wiederholt mit VAR -Anweisungen zu deklarieren. Wenn die Erklärung mit Zuordnungsvorgängen wiederholt wird, ist sie gleichbedeutend mit der Neuzuordnung des Werts.
Fehlende Aussage
Wenn Sie versuchen, den Wert einer nicht deklarierten Variablen zu lesen, meldet JavaScript einen Fehler
JavaScript ermöglicht weggelassene Deklarationen, dh, die direkte Werte ohne vorherige Deklarationen Variablen zuweisen, und die Zuordnungsvorstellung deklariert automatisch die Variable.
Im strengen Modus von ECMascript5 führt die Zuweisung eines Wertes einer nicht deklarierten Variablen jedoch zu einem Fehler
<Script> 'Strict'; a = 5; Konsole.log (a); </script>
Variable Eigenschaften
JavaScript-Variablen sind schwache Typen (auch als lose Typen bezeichnet), und die sogenannten losen Typen werden verwendet, um jede Art von Daten zu speichern.
Programmiersprache Klassifizierung: Dynamische typisierte Sprache und statische typisierte Sprache. Die dynamische typisierte Sprache bezieht sich auf eine Sprache, die während des Betriebs nur Datentypprüfung durchführt. Das heißt, wenn Sie in einer dynamischen typisierten Sprache programmieren, müssen Sie keinen Datentyp für eine Variable angeben. Die Sprache erfasst den Datentyp intern, wenn er zum ersten Mal einer Variablen einen Wert zuweist. JavaScript ist repräsentativ für dynamisch typisierte Sprachen.
In JavaScript können Sie den Wert des Wertes ändern und gleichzeitig den Wert ändern.
var message = 'hi'; message = 100; // gültig, aber nicht empfohlen
Es gibt zwei Punkte, um die Eigenschaften loser Arten von Variablen zusammenzufassen: Eine ist, dass Sie beim Deklarieren keine Datentypen für Variablen angeben müssen. Das andere ist, dass Sie die Datentypen bei der Zuweisung von Werten ändern können.
Variabler Umfang
Der Umfang einer Variablen, die auch als Ausführungskontext bezeichnet wird, ist der Bereich, der diese Variable im Programmquellcode definiert.
Scopes werden in den globalen Umfang und den Funktionsumfang unterteilt (auch als lokaler Bereich genannt)
Der globale Umfang ist die am besten periphere Ausführungsumgebung. In einem Webbrowser wird die globale Ausführungsumgebung als Fensterobjekt angesehen. Alle globalen Variablen und Funktionen werden als Eigenschaften und Methoden von Fensterobjekten erstellt. Globale Variablen haben globale Bereiche und sind überall im JavaScript -Code definiert. Der globale Umfang wird erst zerstört, wenn die Anwendung beendet ist, z. B. eine Webseite oder einen Browser schließt.
In einer Funktion deklarierte Variablen werden nur im Funktionskörper definiert. Sie sind lokale Variablen und ihr Umfang ist lokal. Funktionsparameter sind ebenfalls lokale Variablen und sind nur im Funktionskörper definiert. Nachdem alle Code im Funktionsbereich ausgeführt wurden, wird der Umfang zerstört und alle darin gespeicherten Variablen und Funktionsdefinitionen werden ebenfalls zerstört.
Funktion test () {var message = 'hi';} test (); alert (message); // fehlerWenn der VAR -Operator weggelassen wird, wird eine globale Variable erstellt
Funktion test () {message = 'hi';} test (); alert (message); // 'hi' 'Obwohl das Auslassen des VAR -Operators globale Variablen definieren kann, wird dies nicht empfohlen. Globale Variablen, die im lokalen Bereich definiert sind, sind schwer zu warten, und wenn der VAR -Operator absichtlich ignoriert wird, wird er auch unnötige Verwirrung verursachen, da die entsprechende Variable nicht sofort definiert wird. Das Zuweisen von Werten an nicht deklarierte Variablen im strikten Modus führt zu einem ReferenzError -Fehler, der geworfen wird
In der Funktionskörper ist die Priorität lokaler Variablen höher als die der globalen Variablen mit demselben Namen. Wenn eine lokale Variable, die in der Funktion oder der Variablen- und globalen Variablen im Funktionsparameter deklariert ist, dupliziert werden, wird die globale Variable von der lokalen Variablen abgedeckt.
var scope = 'global'; function CheckScope () {var scope = 'local'; Return Scope;}; CheckScope (); // 'Lokal' 'Aussageförderung (Hebezeuge)
Umfang auf Blockebene
Umfangsumfang bedeutet, dass jedes Code-Stück in lockigen Klammern seinen eigenen Bereich hat, während JavaScript keinen Block-Level-Bereich hat. JavaScript hat nur Funktionsumfang: Variablen werden in der Funktionskörper definiert, die sie deklariert, und jede in dieser Funktionsbehörde verschachtelte Funktionskörper.
Dies bedeutet, dass Variablen noch verfügbar sind, bevor sie deklariert werden. Dieses Merkmal von JavaScript wird informell als Hebezeuge bezeichnet. Alle in JavaScript -Funktionen deklarierten Variablen (keine Zuordnungen) werden an die Spitze der Funktionsbehörde vorangetrieben.
[Hinweis] Tatsächlich werden zusätzlich zur variablen Promotion auch Funktionen gefördert, und es werden detaillierte Einführungen in den Funktionsabschnitt vorliegen
var scope = 'global'; Funktion f () {console.log (scope); // undefined var scope = 'local'; console.log (scope); // 'local'} // Nach der Beförderung der Variablenerklärung entspricht sie dem folgenden Code var scope = 'global'; Funktion f () {var scope; console.log (scope); // undefined Scope = 'local'; console.log (scope); // 'local'}JavaScript gibt es keinen Umfang auf Blockebene, sodass einige Programmierer absichtlich variable Erklärungen auf die Oberseite des Funktionskörpers legen. Dieser Quellcode spiegelt eindeutig den realen variablen Umfang wider.
Attributvariablen
Bei der Erklärung einer javaScript -globalen Variablen definiert es tatsächlich eine Eigenschaft des globalen Objektfensters
Wenn eine Variable mit Var deklariert wird, ist die erstellte Variable nicht konfigurierbar, was bedeutet, dass die Variable nicht über den Löschbetreiber gelöscht werden kann
var truevar = 1; console.log (truevar, window.truevar); // 1 1delete truevar; // falseconsole.log (truevar, window.truevar); // 1 1
Wenn Sie keinen strengen Modus verwenden und einer nicht deklarierten Variablen einen Wert zuweisen, erstellt JavaScript automatisch eine globale Variable. Die auf diese Weise erstellten Variablen sind normale konfigurierbare Eigenschaften des globalen Objekts und können sie löschen
Fenster.Fakevar1 = 10; console.log (fakevar1, window.fakevar1); // 10 10 this.fakevar2 = 20; console.log (fakevar2, window.fakevar2); // 20 20fakevar = 30; console.log (fakevar, window.fakevar); // 30 30Delete Fenster.Fakevar1; // treedelete this.fakevar2; // tredelete fakevar; // trueconsole.log (fakevar1, window.fakevar1); // Fehlerkonsole.log (fakevar2, window.fakevar2); // eine Fehlerkonsole.log (fakevar, window.fakevar) melden; // einen Fehler melden
Globale JavaScript -Variablen sind Eigenschaften globaler Objekte, die in ECMascript obligatorisch sind. Lokale Variablen werden als Attribute eines Objekts behandelt, das sich auf Funktionsaufrufe bezieht. ECMAScript3 wird als Anrufobjekt bezeichnet und ECMAScript5 wird als deklarative Umgebungsaufzeichnung bezeichnet. JavaScript ermöglicht die Verwendung dieses Schlüsselworts, um sich auf globale Objekte zu beziehen. Es gibt jedoch keine Möglichkeit, sich auf Objekte zu beziehen, die in lokalen Variablen gespeichert sind. Diese einzigartige Eigenschaft der Speicherung lokaler variabler Objekte ist eine interne Implementierung, die für uns unsichtbar ist
Die obige grundlegende Grammatik von JavaScript - Ein umfassendes Verständnis von Variablen und Kennungen ist der gesamte Inhalt, den ich mit Ihnen teile. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.