Außerhalb der Funktion definierte Variablen müssen globale Variablen sein. Variablen, die in der Funktion definiert sind, ist die Variable eine lokale Variable. Wenn Var nicht deklariert wird, ist die Variable eine globale Variable.
1. Globale und lokale Variablen JavaScript var Global = "global"; test (); Funktion test () {var local = "local"; document.writeln (global); document.WriteLn (lokal);} document.writeln (global); document.writeln (lokal);2. Zwei Arten von Keksen
i) Anhaltende Cookies werden auf der Festplatte des Kunden aufbewahrt.
ii) Antwort Cookie: Es wird nicht auf der Festplatte des Kunden gespeichert, sondern in den Speicher des Browserprozesses platziert. Wenn der Browser geschlossen ist, wird der Antwortkeks zerstört.
3. In JavaScript ist eine Funktion ein Objekt
4. In JavaScript gibt es kein Überladen der Methode (Funktion)
5. Funktionsobjekt
In JavaScript befindet sich ein Funktionsobjekt, und alle benutzerdefinierten Funktionen sind von Funktionsobjekttyp. Alle vom Funktionsobjekt akzeptierten Parameter sind vom Typ Zeichenfolge, der letzte Parameter ist der zu ausgeführte Funktionskörper, und der vorherige Parameter sind die Parameter, die die Funktion wirklich akzeptieren muss.
6. Implizite Objektargumente
In JavaScript hat jede Funktion ein implizite Objektargumente, das die tatsächlich an die Funktion übergebenen Parameter darstellt. Argumente.Length repräsentiert die Anzahl der tatsächlich bestandenen Parameter.
7. Funktionsname.Length
Jedes Funktionsobjekt hat ein Längenattribut, das die Anzahl der Parameter angibt, die die Funktion akzeptiert. Es unterscheidet sich von den Funktionen der Funktionen. Argumente.Length repräsentiert die Anzahl der von der Funktion tatsächlich akzeptierten Parameter.
8. In JavaScript gibt es fünf primitive Datentypen
Undefiniert, null, boolean, nummer und string. (Hinweis: In JavaScript gibt es keinen Char -Datentyp)
Es gibt nur einen Wert für den undefinierten Datentyp: undefiniert;
Es gibt nur einen Wert für den Null -Datentyp: null;
Es gibt zwei Werte des Booleschen Datentyps: True und False;
9. Typof Operator
Typeof ist ein unärer Operator, gefolgt vom Namen der Variablen. Es wird verwendet, um den Datentyp der Variablen zu erhalten. Seine Rückgabewerte sind: undefiniert, boolean, Anzahl, Zeichenfolge und Objekt.
10. In JavaScript wird die Beziehung zwischen undefined11, Null und Undefined die Beziehung zwischen Undefined11, Null und Undefined zurückgeben
Undefiniert wird tatsächlich von Null abgeleitet. Zum Beispiel:
Die Beziehung zwischen Null und Undefiniert
JavaScript
alarm (undefined == null); // Der Browser gibt true zurück
11. Zwangstypkonvertierung
In JavaScript gibt es 3 Abgüsse: Boolean (Wert), Zahl (Wert), String (Wert).
12. Objektobjekt
In JavaScript werden alle Objekte von Objektobjekten vererbt.
Objekt Objekt
JavaScript
var Object = new Object (); für (var v in Object) {alert (v);}Im obigen Code druckt der Browser nichts, was nicht bedeutet, dass das Objektobjekt keine Attribute trägt. Die folgenden Code testen, ob die Eigenschaften im Objektobjekt aufgezählt werden können. Wenn Falsch zurückgegeben wird, bedeutet dies, dass die Eigenschaften im Objektobjekt nicht aufgezählt werden können.
Eigenschaften in Objektobjekten können nicht aufgezählt werden
JavaScript
Alert (Object.Propertyisenumerable ("Prototyp"));Wenn der Browser ein falsches Dialogfeld aufgreift, bedeutet dies, dass die Eigenschaften im Objektobjekt nicht aufgezählt werden können.
Als nächstes sehen wir, ob die Eigenschaften im Fensterobjekt aufgezählt werden können.
Eigenschaften in Fensterobjekten sind aufgezählt
JavaScript
für (var v im Fenster) {console.log (v);}In Chrome werden viele Eigenschaften in der Browser -Debugging -Konsole ausgedruckt, was darauf hinweist, dass die Eigenschaften im Fensterobjekt aufgezählt werden können.
13. In JavaScript können Sie die Attribute eines Objekts dynamisch hinzufügen oder die Attribute eines Objekts dynamisch löschen.
Dynamisch die Eigenschaften von Objekten hinzufügen/entfernen
JavaScript
var Object = new Object (); alert (Object.username); // undefined Object.username = "Zhangsan"; Alert (Object.Unername); // Zhangsan Object ["Passwort"] = "123"; Alert (Object.Password); // 123 löschen objekt.username;
14. Der häufigste Weg, Objekte in JavaScript zu definieren
Die häufigste Art, Objekte zu definieren
JavaScript
var Object = {Benutzername: "Zhangsan", Passwort: 12345}; alert (Object.username); alert (Object.Password);15. Array
Array -Definition
JavaScript
// Methode 1 var array = new Array (); Array.push (1); Array.push (2); Array.push (3); alert (Array.Length); // Methode 2 (empfohlen) var array = [1,25,4]; array.sort (); alert (array);
Rufen Sie die Sort () -Methode des Arrays auf, und der Browser druckt 1, 25, 4, was nicht das Ergebnis ist, das wir erwarten.
Für die Sortiermethode des JavaScript -Arrays konvertiert zunächst den Inhalt in eine Zeichenfolge (als toString () () -Methode) und sortiert ihn in der Reihenfolge der Zeichenfolgen.
Die folgende Methode kann die erwarteten Ergebnisse erhalten (sortiert nach Arraygröße):
Array -Sortierung
JavaScript
Funktion Compare (num1, num2) {var temp1 = parseInt (num1); var temp2 = parseInt (num2); if (temp1 <temp2) {return -1; } else if (temp1 == temp2) {return 0; } else {return 1; }} var array = [1,25,3]; array.sort (compare); alert (array);Wir implementieren es dann in anonymen Funktionen:
Anonyme Funktionssortierung
JavaScript
var array = [1,25,3]; array.sort (function (num1, num2) {var temp1 = parseInt (num1); var temp2 = parseInt (num2); if (temp1 <temp2) {return -1;} else if (temp1 == temp2) {return 0;} else {return 1;}}); Alarm (Array);16. Fünf Möglichkeiten, Objekte in JavaScript zu definieren (es gibt kein Konzept von Klassen in JavaScript, nur Objekte) i) Erweitern Sie seine Eigenschaften und Methoden basierend auf vorhandenen Objekten
Erweitern Sie seine Eigenschaften und Methoden basierend auf vorhandenen Objekten
JavaScript
var Object = new Object (); // Name Attribut -Objekt hinzufügen.Name = "Zhangsan"; // sayName method Object.sayname = Funktion (Name) {this.name = name; alert (this.name);};Der einfachste Weg ist nicht bequem zu bedienen und ist geeignet, ein Objekt vorübergehend zu erfordern.
ii) Objekte in der Fabrik erstellen
Fabrikmethode ohne Parameter:
JavaScript
// Factory Method Function CreateObject () {var Object = new Object (); // ein Objekt erstellen Objekt.Name = "Zhangsan"; // Ein Name Attribut -Objekt hinzufügen. }; Return -Objekt zurückgeben; // dieses Objekt zurückgeben} var object1 = createObject (); // Kalender eine createObject Factory -Methode zum Erstellen von Object1Var Object2 = createObject (); // Aufrufen createObject Factory -Methode zum Erstellen von Object Object2Object1.get (); // Aufrufen des Objekts Get -Objekt2.get (); // cell die Objekt.Fabrikmethode mit Parametern:
JavaScript
Funktion createObject (Name, Passwort) {var Object = new Object (); Object.Name = Name; Object.Password = Passwort; Object.get = function () {alert (this.name+","+this.Password); }; Rückgabeobjekt;} var Object1 = createObject ("Zhangsan", "123"); var Object2 = createObject ("lisi", "456"); Object1.get (); Object2.get ();Nachteile der beiden oben genannten Fabrikmethoden ohne Parameter und mit Parametern:
Jedes Mal, wenn ein Objekt erstellt wird, wird im Speicher eine GET -Methode erstellt, die eine Speicherverschwendung ist und die Leistung beeinflusst. Und unsere Erwartung ist es, zwei verschiedene Objekte zu erstellen, deren Eigenschaften unterschiedlich sind, die Methoden jedoch geteilt werden. Als nächstes müssen wir die Fabrikmethode für die Erstellung der Erstellung verbessern.
Verbesserter Fabrikansatz:
JavaScript
Funktion get () {alert (this.name+","+this.Password);} Funktion createObject (Name, Passwort) {var Object = new Object (); Object.Name = Name; Object.Password = Passwort; Object.get = get; Rückgabeobjekt;} var Object1 = createObject ("Zhangsan", "123"); var Object2 = createObject ("lisi", "456"); Object1.get (); Object2.get ();Definieren Sie die GET -Methode außerhalb der Funktion createObject, damit die GET -Methode für jedes erstellte Objekt gemeinsam genutzt wird. Erstellen Sie ein Funktionsobjekt durch mehrere Objekte, anstatt dass jedes Objekt ein Funktionsobjekt mit einem Funktionsobjekt ist.
iii) Konstruktorenmethode zum Erstellen eines Objekts
Konstruktor ohne Parameter:
JavaScript
Funktion person () {// Bevor Sie die erste Codezeile ausführen, generiert die JS -Engine ein Objekt für uns this.name = "Zhangsan"; this.Password = "123"; this.getInfo = function () {alert (this.name+","+this.Password); }; // Es gibt hier eine implizite Rückgabeanweisung, um das zuvor generierte Objekt zurückzugeben (das auch eine andere Stelle als die Werksmethode ist)} var p1 = new Person (); p1.getInfo ();Konstruktor mit Parametern
JavaScript
Funktionsperson (Name, Passwort) {this.name = name; this.Password = Passwort; this.getInfo = function () {alert (this.name+","+this.Password); };} var p1 = new Person ("Zhangsan", "123"); var p2 = new Person ("Lisi", "456"); p1.getInfo (); p2.getInfo ();iv) Prototyp (Prototyp) Objekterstellung
Prototyp ist eine Eigenschaft im Objektobjekt
Prototyp
JavaScript
Funktion person () {} person.Prototype.name = "Zhangsan"; Person.Prototype.Password = "123"; Person.Prototype.getInfo = function () {alert (this.name+","+this.password);}; var p1 = new Person (); var p2 = new Person (); p1.name = "kyle"; // Nach dem Erstellen des Objekts ändern Sie das Attribut p1.getInfo (); p2.getInfo ();Es gibt zwei Probleme bei der einfachen Verwendung von Prototypen: Erstens können Sie den Attributen im Konstruktor Anfangswerte nicht zuweisen, und Sie können die Attributwerte nur nach der Erstellung des Objekts ändern.
Prototyp
JavaScript
Funktion person () {} Person.Prototype.name = new Array (); Person.Prototype.Password = "123"; Person.Prototype.getInfo = function () {alert (this.name+","+this.password);}; var p1 = new Person (); var p2 = new Person (); p1.name.push ("zhangsan"); p1.name.push ("lisi"); p1.password = "456"; p1.getInfo (); p2.getInfo ()Der Browser druckt: Zhangsan, Lisi, 456 und Zhangsan, Lisi, 123.
Wenn ein Objekt unter Verwendung der Prototyp -Methode erstellt wird, teilen sich alle generierten Objekte die Eigenschaften im Prototyp. Wenn ein Objekt die Eigenschaft ändert, wird es auch in anderen Objekten reflektiert. Daher ist es nicht möglich, einfach die Prototypmethode zu verwenden, und es muss auch mit anderen Methoden kombiniert werden. Wir werden es weiterhin als nächstes vorstellen.
Verwenden Sie den Prototyp + Konstruktor, um Objekte zu definieren
JavaScript
Funktion person () {this.name = new Array (); this.password = "123";} Person.Prototype.getInfo = function () {alert (this.name+","+this.Password);}; var p1 = new Person (); var p2 = new Person (); p1.name.push ("zhangsan"); p2.Name.push ("Lisi"); p1.getInfo ();Verwenden Sie die Prototyp + Konstruktormethode, um Objekte zu definieren. Die Eigenschaften zwischen Objekten stören sich nicht gegenseitig und jedes Objekt teilt die gleiche Methode. Dies ist ein besserer Weg.
v) Dynamische Prototypmethode
JavaScript
Funktion person () {this.name = "Zhangsan"; this.Password = "123"; if (typeof person.flag == "undefined") {alert ("aufgerufen"); Person.Prototype.getInfo = function () {alert (this.name + "," + this.Password); } Person.flag = true; }} var p1 = new Person (); var p2 = new Person (); p1.getInfo (); p2.getInfo ();Bei der dynamischen Prototypmethode teilen alle Objekte im Konstruktor eine Methode durch Flaggenmengen, und jedes Objekt hat seine eigenen Attribute. Wenn der obige Code zum ersten Mal ein Objekt erstellt wird, verwendet er zunächst eine Urteilsanweisung, um festzustellen, ob das Flag -Attribut definiert wurde. Wenn es nicht definiert ist, fügen Sie die GetInfo -Methode durch den Prototyp hinzu und setzen Sie das Flag auf True. Wenn dann das Objekt beim zweiten Mal erstellt wird, wird die IF -Aussage als falsch beurteilt und ausgeführt wird übersprungen. Dies erzielt das gewünschte Ergebnis, die erstellten Objekteigenschaften stören sich nicht gegenseitig und die Objektmethoden werden geteilt.
17. Vererbung von Objekten in JavaScript (5 Wege)
Die erste Methode: Objektimitierung
Imitieren Sie die Vererbung des Objekts
JavaScript
// Vorsitzende Klassenfunktion Eltern (Benutzername) {this.username = userername; this.sayhello = function () {alert (this.username); };} // Subklassenfunktion Child (Benutzername, Passwort) {// Die folgenden drei Codezeilen sind die kritischsten. this.method (Benutzername); Löschen Sie dies.Method; this.Password = Passwort; this.sayworld = function () {alert (this.password); };} var p = neuer Elternteil ("Zhangsan"); var c = neues Kind ("Lisi", "123"); P.Sayhello (); C.Sayhello (); C.Sayworld ()Die zweite Methode: call ()
Die zweite Implementierungsmethode der Vererbung, die Aufrufmethode, die Aufrufmethode ist eine im Funktionsobjekt definierte Methode, daher hat jede von uns definierte Funktion diese Methode. Der erste Parameter der Aufrufmethode wird in der Funktion über den zweiten Parameter übergeben und den Parametern in der Funktion eins nacheinander zugeordnet.
Rufen Sie die Elternklasse an
JavaScript
Funktionstest (str) {alert (this.name+","+str);} var Object = new Object (); Object.name = "Zhangsan"; // test.call entspricht dem Aufrufen des Testfunktionstests (CALL ("HTML5WAR").Als nächstes verwenden wir die Anrufmethode, um die Vererbung des Objekts zu implementieren
JavaScript
// Vorsitzende Klassenfunktion Eltern (Benutzername) {this.username = userername; this.sayhello = function () {alert (this.username); };} // Subklassenfunktion unterindest (Benutzername, Passwort) {parent.call (this, Benutzername); this.Password = Passwort; this.sayworld = function () {alert (this.password); };} var p = neuer Elternteil ("Zhangsan"); var c = neues Kind ("Lisi", "123"); P.Sayhello (); C.Sayhello (); C.Sayworld ();Die dritte Methode: anwenden ()
Wenden Sie Erben der übergeordneten Klasse an
JavaScript
// Vorsitzende Klassenfunktion Eltern (Benutzername) {this.username = userername; this.sayhello = function () {alert (this.username); };} // Subklassenfunktion unter child (Benutzername, Passwort) {parent.apply (this, New Array (Benutzername)); this.Password = Passwort; this.sayworld = function () {alert (this.password); };} var p = neuer Elternteil ("Zhangsan"); var c = neues Kind ("Lisi", "123"); P.Sayhello (); C.Sayhello (); C.Sayworld ();Die Anwendenmethode ist der Anrufmethode sehr ähnlich. Die Anwendenmethode ist auch eine Methode, die in einem Funktionsobjekt definiert ist. Jede von uns definierte Funktion hat diese Methode.
Es gibt einen Unterschied zwischen der Anwendenmethode und der Aufrufmethode: übergeordnet.Apply (dies, Neuarray (Benutzername)); Der zweite übergebene Parameter ist ein Array, während die Anrufmethode einige diskrete Datenparameter übergab. Diese beiden Methoden können nicht als gut und schlecht gesagt werden, es hängt vom spezifischen Nutzungsszenario ab.
Die vierte Methode: Prototyp -Kettenmethode (keine Parameter an den Konstruktor übergeben)
Prototyp -Kettenvererbung
JavaScript
function parent () {} parent.prototype.hello = "hello"; parent.prototype.sayhello = function () {alert (this.hello);}; function child () {} child.Prototype = new Parent (); Child.Prototype.World = "World"; Child.Prototype.sayworld = function () {alert (this.world);}; var c = neues Kind (); C.Sayhello (); C.Sayworld ();Nachteile der einfachen Verwendung der Prototyp -Kettenmethode: Es gibt keine Möglichkeit, Parameter zu übergeben. Sie können nur warten, bis das Objekt erstellt wird, bevor es geändert wird. Lassen Sie uns dieses Problem in Kombination mit anderen Arten lösen.
Die fünfte Methode: gemischte Methode (empfohlen)
Verwenden Sie Hybridmethoden zur Implementierung der Vererbung des Objekts
JavaScript
Funktion Eltern (Hallo) {this.hello = Hallo;} parent.prototype.sayhello = function () {alert (this.hello); this.world = world;} child.Prototype = new Parent (); child.Prototype.sayworld = function () {alert (this.world);} var c = new Child ("Hallo", "Welt"); C.Sayhello (); C.Sayworld ();Die obige Zusammenfassung der grundlegenden JavaScript -Wissenspunkte (empfohlen) 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.