Grundkonzepte
javascript是一门解释型的语言,浏览器充当解释器。js执行引擎并不是一行一行的执行,而是一段一段的分析执行。Skripte verzögern
Das Defer -Attribut ist in HTML4.0.1 definiert, das verwendet wird, um anzuzeigen, dass das Skript bei der Ausführung nicht die Konstruktion der Seite beeinflusst. Mit anderen Worten, das Skript wird verzögert, bis die gesamte Seite vor der Ausführung analysiert wurde. Das Einstellen des Aufschubattributs im <Script> -Element ist daher gleichbedeutend mit dem Anweisungen des Browsers, sofort herunterzuladen, aber die Ausführung verzögert. Legen Sie in XHTML -Dokumenten das Aufschubattribut auf defer=“defer" fest.
Asynchrone Skripte
html5 definiert das Async -Attribut für <script>. Die gesamte Eigenschaft ähnelt der Defer -Eigenschaft und wird verwendet, um das Verhalten von Verarbeitungsskripten zu ändern. In ähnlicher Weise funktioniert Async, ähnlich wie bei Defer, nur mit externen Skriptdateien und fordert den Browser an, die Datei sofort herunterzuladen. Im Gegensatz zu Defer, die als Async markiert sind, garantieren die Ausführung in der Reihenfolge, in der sie angegeben werden, keine Ausführung.
Der Zweck der Angabe von Async besteht darin, zu verhindern, dass die Seite darauf wartet, dass die Skriptdatei heruntergeladen und ausgeführt wird, wodurch andere Inhalte der Seite asynchron geladen werden. Daher wird empfohlen, dass asynchrone Skripte DOM während des Ladens nicht betreiben
Fallempfindlichkeit
Alles in ECMascript (einschließlich Variablen, Funktionsnamen und Operatoren) ist Fallempfindlichkeit.
1. Jscript -Variablen
Variablen werden im Speicher festgelegt, wenn sie zum ersten Mal verwendet werden, sodass später in Skripten verwiesen werden. Deklarieren Sie es, bevor Sie Variablen verwenden. Variablen Deklarationen können mit dem Schlüsselwort var verwendet werden.
var count, amount, level; // 用单个var 关键字声明的多个声明。
Variable Benennung
Zu den Variablennamen gehören globale Variablen, lokale Variablen, Klassenvariablen, Funktionsparameter usw. Sie fallen alle in diese Kategorie.
Die variable Benennung besteht aus dem Typ -Präfix + aussagekräftige Wörter, und die Lesbarkeit von Variablen und Funktionen wird durch die Kamel -Nomenklatur erhöht. Zum Beispiel: Susername, NCOUNT.
Präfixspezifikation:
Jede lokale Variable muss ein Typ -Präfix haben, der unterteilt werden kann in:
S: repräsentiert eine Zeichenfolge. Zum Beispiel: Sname, shtml; N: repräsentiert eine Zahl. Zum Beispiel: npage, ntotal; B: Repräsentiert Logik. Zum Beispiel: Bchecked, Bhaslogin; A: repräsentiert ein Array. Zum Beispiel: Alist, Agroup; R: stellt einen regulären Ausdruck dar. Zum Beispiel: rdomain, remail; F: repräsentiert eine Funktion. Zum Beispiel: fGethtml, endgültig; O: repräsentiert andere oben nicht erwähnte Objekte wie: Obutton, Odate; G: repräsentiert globale Variablen, wie z. B. GuSerername, Glogintime;
Jscript ist eine Fallempfindlichkeit. Das Erstellen eines legitimen Variablennamens sollte den folgenden Regeln folgen:
Beachten Sie, dass das erste Zeichen keine Zahl sein kann.
Sie können jedem Buchstaben oder einer beliebigen Zahl und Unterstriche folgen, jedoch nicht von Leerzeichen
Der variable Name darf kein reserviertes Wort sein.
javascript ist eine schwach typisierte Sprache, und JavaScript ignoriert unnötige Räume. Sie können dem Skript Räume hinzufügen, um seine Lesbarkeit zu verbessern.
var ist ein reserviertes Wort für javascript , das angibt, dass die folgende Beschreibung der Variablen ist, der variable Name eine benutzerdefinierte Kennung ist und die Variablen durch Kommas getrennt werden.
Wenn eine Variable deklariert wird, der jedoch kein Wert zugewiesen wird, existiert die Variable und ihr Wert ist der jscript -Wert undefiniert.
Konvertierung des Typs Typ
In JScript können Operationen an verschiedenen Wertenarten durchgeführt werden, ohne sich über Ausnahmen aus dem JSCript -Interpreter zu sorgen. Stattdessen ändert sich der Jscript -Interpreter automatisch einen der Datentypen in einen anderen Datentyp und führt dann den Vorgang durch. Zum Beispiel:
Der Berechnungsergebniswert wird der Zeichenfolge und dem Gusswert in eine Zeichenfolge hinzugefügt. Das Hinzufügen des Booleschen Wertes zur Zeichenfolge gibt den booleschen Wert in eine Zeichenfolge. Das Hinzufügen des numerischen Wertes zum booleschen Wert bringt den Booleschen Wert auf einen numerischen Wert.
Verwenden Sie parseInt -Methode, um eine Zeichenfolge explizit in eine Ganzzahl umzuwandeln. Verwenden Sie parseFloat -Methode, um eine Zeichenfolge explizit in eine Zahl in eine Zahl zu konvertieren.
Lebensdauer von JavaScript -Variablen: Wenn Sie eine Variable innerhalb einer Funktion deklarieren, können Sie in dieser Funktion nur auf die Variable zugreifen. Beim Verlassen der Funktion wird diese Variable widerrufen. Diese Variable wird als lokale Variable bezeichnet. Sie können lokale Variablen mit demselben Namen in verschiedenen Funktionen verwenden, da nur Funktionen, die deklarierte Variablen, jede Variable erkennen können.
Wenn Sie eine Variable außerhalb einer Funktion deklarieren, können alle Funktionen auf der Seite auf die Variable zugreifen. Die Lebensdauer dieser Variablen beginnt, nachdem sie deklariert wurden und endet, wenn die Seite geschlossen ist.
JS Variable Mind Map
2.JS -Datentyp
JScript hat drei Typen -> Hauptdatentypen, zwei -> zusammengesetzte Datentypen und zwei -> spezielle Datentypen.
Hauptdatentypen (grundlegende) Datentypen
字符串数值布尔Zusammengesetzter Datentyp (Referenz)
对象数组Spezielle Datentypen
Null`Undefined`String -Datentyp: String -Datentyp wird verwendet, um Text in Jscript darzustellen. In JS können sowohl Doppelzitate ("") als auch einzelne Zitate ('') Strings darstellen, aber fast keinen Unterschied. Die Verwendung von nur doppelten Zitaten (""), um eine Zeichenfolge anzuzeigen, gilt jedoch als die beste.
Ein String -Wert ist eine Zeichenfolge von Nullen oder mehr Unicode -Zeichen (Buchstaben, Zahlen und Interpunktionsmarken), die zusammen angeordnet sind.
Was ist Unicode?
Unicode bietet eindeutige Werte für jeden Charakter, unabhängig von Plattform, Programm oder Sprache. Unicode wurde entwickelt, um eine einheitliche Codierung für die Verarbeitung aller in der Welt existierenden Zeichen bereitzustellen.
Numerischer Datentyp
Wir müssen verstehen, dass Jscript intern alle Werte als schwimmende Punktwerte darstellt, sodass es keinen Unterschied zwischen Ganzzahlen und schwimmenden Punktwerten in Jscript gibt.
Boolean Datentyp
Boolescher (logisch) kann nur zwei Werte haben: True oder False.
JS -Arrays und Objekte
Weitere Informationen finden Sie in meinem Artikel -> JavaScript -Lernzusammenfassung - Array und Objektteil
Null -Datentyp: Sie können den Inhalt einer Variablen löschen, indem Sie einer Variablen einen Nullwert zuweisen.
typeof -Operator in JScript meldet den null als Object , nicht type null .
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <title></title> <script type="text/javascript"> alert(typeof null); </script> </head> <body> </body> </html>
null wird verwendet, um ein Objekt darzustellen, das noch nicht existiert hat, und wird häufig verwendet, um eine Funktion darzustellen, die versucht, ein Objekt zurückzugeben, das nicht existiert.
Undefined Datentyp:
Der undefinierte Wert wird in der folgenden Situation zurückgegeben:
对象属性不存在,声明了变量但从未赋值。Unterschied zwischen Null und undefiniertem Unterschied
alarm (typeof undefined); // Ausgabe "undefined" -Alert (typeof null); // Ausgabe "Objekt" -Alert (null == undefiniert); // Ausgabe "true"
ECMascript ist der Ansicht, dass undefinierter ECMAScript von Null abgeleitet wird, sodass sie als gleich definiert sind.
alarm (null === undefiniert); // Ausgabe "false" -Alert (typeof null == typeof undefined); // Ausgabe "falsch"
Null und undefiniert sind bei Typen unterschiedlich, also geben Sie "Falsch" aus. Und === bedeutet absolute Gleichheit, hier null === undefinierte Ausgabe falsch
Darüber hinaus ist hier ein wichtigerer Datentyp - Referenzdatentyp
Referenzdatentyp
Der JavaScript -Referenzdatentyp ist ein Objekt, das im Heap -Speicher gespeichert ist. JavaScript ermöglicht keinen direkten Zugriff auf den Standort und den Betrieb des Heap -Speicherplatzes. Es kann nur die Referenzadresse des Objekts im Stapelspeicher bedienen. Daher werden die Referenztypdaten tatsächlich im Stack -Speicher als Referenzadresse des Objekts im Heap -Speicher gespeichert. Mit dieser Referenzadresse können Sie schnell Objekte finden, die im Heap -Speicher gespeichert sind.
Lassen Sie uns den Prozess der Zuweisung von Referenzdatentypen demonstrieren
Das Hinzufügen eines Namensattributs zu OBJ2 fügt natürlich den Objekten im Heap -Speicher ein Namensattribut hinzu. OBJ2 und OBJ1 speichern nur die Referenzadresse des Heap -Speicherobjekts im Stapelspeicher. Obwohl sie ebenfalls kopiert werden, ist das Objekt gleich. Das Ändern von OBJ2 führt daher zu einer Änderung von OBJ1.
Grundtypwerte beziehen sich auf einfache Datensegmente, die im Stapelspeicher gespeichert sind, d. H. Ein Ort, an dem solche Werte vollständig im Speicher gespeichert werden.
Der Referenztypwert bezieht sich auf die im Heap -Speicher gespeicherten Objekte, dh die Variable ist eigentlich nur ein Zeiger, der auf einen anderen Ort im Speicher zeigt, an dem das Objekt gespeichert ist.
Kurz gesagt, der Heap -Speicher speichert Referenzwerte und der Stapelspeicher werden festgelegte Typwerte gespeichert.
In ECMAScript können Variablen zwei Wertearten haben, nämlich den ursprünglichen Wert und den Referenzwert.
Ein einfaches Datensegment, bei dem die ursprünglichen Werte im stack gespeichert werden, dh ihre Werte werden direkt an dem Ort gespeichert, an dem die Variable zugegriffen wird. Das im Heap ( heap ) gespeicherte referenzierte Objekt, dh der Wert, der in der Variablen gespeichert ist, ist ein Zeiger ( point ), der auf den Speicher zeigt, in dem das Objekt gespeichert ist.
<script type = "text/javaScript"> var box = new Object (); // Erstellen Sie einen Referenztyp var box = "Lee"; // Der Grundtypwert ist das String -Box.age = 23; // Es ist seltsam, den grundlegenden Typenwerten Attribute hinzuzufügen, da nur Objekte Attribute hinzufügen können. alarm (box.age); // Es ist kein Referenztyp und kann nicht ausgegeben werden. </Script>
3.Jscript -Operatoren
Priorität: Bezieht sich auf die Reihenfolge der Operationen der Betreiber. In Laienberichten soll zuerst der Teil der Operation berechnet werden.
Kombination: Die Berechnungsreihenfolge des gleichen Prioritätsoperators in Laien ist es, aus welcher Richtung zu berechnen ist, unabhängig davon, ob es von links nach rechts oder rechts nach links links ist.
Datentypkonvertierung
String () zum String -Typ
Number () konvertiert in den numerischen Typ
Boolean () zum Booleschen Typ
parseInt : Umgewandelt eine Zeichenfolge in eine Ganzzahl. Beginnen Sie von Beginn der Saite an Parsen, hören Sie auf, an der ersten Nichttegerposition zu analysieren und geben Sie alle zuvor gelesenen Ganzzahlen zurück. Wenn die Zeichenfolge nicht mit einer Ganzzahl beginnt, wird NAN zurückgegeben. Zum Beispiel: Der von ParseInt ("150 Hi") zurückgegebene Wert ist: 150 und der von ParseInt ("Hi") zurückgegebene Wert: Nan.
parseFloat : Konvertiert eine Saite in eine schwimmende Punktzahl. Beginnen Sie von Beginn der Saite an Parsen, hören Sie auf, an der ersten Nichttegerposition zu analysieren und geben Sie alle zuvor gelesenen Ganzzahlen zurück. Wenn die Zeichenfolge nicht mit einer Ganzzahl beginnt, wird NAN zurückgegeben. Zum Beispiel: parseFloat("15.5 hi") 返回的值是:15.5,parseFloat("hi 15.5")返回的值是:NaN。
eval:将字符串作为javascript表达式进行计算,并返回执行结果,如果没有结果则返回undefined。4.JS -Prozesskontrolle
Für JS -Prozesskontrollanweisungen sind hier nur wenige schwer zu verstehen. Ich werde nicht auf Details über die anderen eingehen. Eine Mind Map ist unten beigefügt.
1. Die für ... in Anweisung führt eine oder mehrere Aussagen aus, die jedem eines Objekts oder jedem Element eines Arrays entsprechen.
für (Variable in [Objekt | Array])) Anweisungen
Parameter:
variable : Eine erforderliche Option. Eine Variable, die entweder ein Attribut eines Objekts oder eines Elements eines Arrays sein kann.
object , array : Optional. Das Objekt oder Array, um es zu durchqueren.
statement : Optional. Eine oder mehrere Aussagen, die relativ zu jeder Eigenschaft eines Objekts oder in jedem Element eines Arrays ausgeführt werden müssen. Es kann eine zusammengesetzte Aussage sein.
Obwohl bedingte Kontrollanweisungen (z. B. wenn Anweisungen) nur dann die Verwendung von Codeblöcken erfordern, wenn mehrere Anweisungen ausgeführt werden (beginnend bei der linken Klammer "{" {"enden an der rechten Klammer"} "), besteht die beste Praxis darin, immer Codeblöcke zu verwenden.
if (args) alarm (args); // Einfach zu fehlern if (args) {alert (args); // empfohlen, zu verwenden}JS Process Control Anweisung Mind Map
5.js Funktion
Eine Funktion ist ein wiederverwendbarer Codeblock, der von einem Ereignis angetrieben oder ausgeführt wird, wenn er aufgerufen wird.
Jscript unterstützt zwei Funktionen: Eine ist eine Funktion in der Sprache, und der andere wird von selbst erstellt.
JavaScript -Funktionen ermöglichen keine Parameter (aber es können Klammern, die Parameter enthalten, nicht weggelassen), und Parameter können an Funktionen zur Verwendung durch Funktionen übergeben werden.
Weitere Informationen zu Funktionen finden Sie in einem anderen Artikel meines Artikels: Eine Zusammenfassung des Funktionsteils von JavaScript Learning (IV)
Zusammensetzung von Objekten
Methode - Funktion: Verfahren, dynamische Eigenschaften - Variablen: Zustand, statisch
Schließlich eine von den Senioren zusammengefasste Mind Map: