0-richter, ob Variablen und Parameter initialisiert werden
if (x) {} // Die Variable wird initialisiert oder die Variable ist nicht leer oder die Variable ist nicht NullEine 1-Deklarations-Funktion erfordert keine Deklaration des Rückgabewerts oder Parametertyps, und das Ende des Satzes erfordert nicht einmal '';
Funktionsumme (i1, i2) {return i1+i2}2-direkte anonyme Funktionen sofort für die Verwendung von anonymen Funktionen
var f = function (i1, i2) {return i1+i2;}; ALERT (F (1,2)); // Gewöhnliche anonyme Funktion alarm (Funktion (i1, i2) {return i1+i2;} (3,4)); // Direkt deklarieren, sofort verwenden3-JS hat kein Klassenkonzept, daher sehen einige Methoden wie Klassen aus
Funktionsperson (Name, Alter) {this.name = name; // Dynamisch Attribute hinzufügen, ähnlich wie dynamisch a in C#. A = new ExpendoObject (); this.age = Alter; this.sayhello = function () {alert ('Hallo, mein Name ist'+name+'i bin'+älter+'Jahre alt.')};} var p1 = new Person ('Lorry', 21); p1.sayhello (); // rufen Sie p1.gender = 'männlich' wie eine Klasse an; // Dynamisch den 'Gender' Attribut -Alarm (p1.hands) hinzufügen;4-Array-Objekte sind Arrays, und Sie müssen die Länge des Arrays nicht vorqualifizieren.
var arr = new Array (); arr [0] = 0; arr [1] = 1; arr [2] = 2; für (var i = 0; i <= arr.Length-1; i ++) {alert (arr [i]);}5-Array ist ein Array, ebenfalls ein Wörterbuch und auch ein Stapel
var dict = new Array (); // als Wörterbuch verwenden Sie dict ['i'] = 'wo'; dict ['Liebe'] = 'ai'; dict ['du'] = 'ni'; alert (dict ['i']); // Alert aufrufen (dict.love); // rufe wie Anrufattribute (Eigenschaften der dynamischen Sprache) für (var k in dict) {// Reisewarnung (k); // 'i', 'love', 'du'-> Drucken Sie Key} für (var k of dict) {// Reisewarnung (k); // 'wo', 'ai', 'ni'-> drucken Sie den Wert} var arr = [1,2,3,4,5]; // vereinfachte Erstellungsmethode von Array var arr = {"Lorry": 21, "Cloud": 20}; // Dictionary Style Creation-Methode6-transfer alle Elemente, die auf der aktuellen Seite aufgerufen werden können
var
7-Use-Einweisvorgänge ähnlich wie Array, um Zeichen an einer bestimmten Position der Zeichenfolge zu erhalten
var s = 'Hallo, Welt!'; s [0]; // 'H's [6]; // 's [12]; // '!' s [13]; // undefinierte Indizes außerhalb des Bereichs werden keinen Fehler melden, aber sie werden immer undefiniert zurückgegeben. Es ist zu beachten, dass die Saite unveränderlich ist. Wenn Sie einem bestimmten Index der Zeichenfolge einen Wert zuweisen, gibt es keine Fehler, aber es gibt keinen Effekt: var s = 'test'; s [0] = 'x'; Warn (s); // s ist immer noch "test"
8-Kapsel-Kleinbuchstaben
var s = 'Hallo'; s.touppercase (); // return 'Hallo' var s = 'Hallo'; S.TolowerCase (); // zurück 'Hallo' zurückgeben
9-Such für den Ort, an dem die angegebene Zeichenfolge angezeigt wird
var s = 'Hallo, Welt'; S.Indexof ('Welt'); // return 7s.indexof ('Welt'); // Es wurde kein angegebenes Substring gefunden, return -110-GET-Substrings des angegebenen Indexintervalls
var // Starten Sie von Index 0 bis 5 (ohne 5), geben Sie 'Hello's.substring (7) zurück; // Beginnen Sie von Index 7 bis zum Ende, wobei die Welt zurücksend wird
11-JavaScript-Objekt ist ein ungeordneter Sammeldatentyp, der aus mehreren Schlüsselwertpaaren besteht.
var xiaoming = {Name: 'Xiaoming', Geburt: 1990, Schule: 'Nr. 1 Middle School', Größe: 1.70, Gewicht: 65, Punktzahl: null // Das letzte Schlüsselwertpaar muss nicht hinzugefügt werden ','}; xiaoming.name; // 'xiaoming'xiaoming.birth; // 1990 Zugriff auf das Attribut erfolgt über die. Operator, dies erfordert jedoch, dass der Attributname ein gültiger variabler Name sein muss. Wenn der Attributname Sonderzeichen enthält, muss er mit []: var xiaohong = {Name: 'Xiaohong', 'Middle-School': 'Nr. 1 Middle School'}; Xiaohong ['Mittelschule'] eingeschlossen sein. // 'Nr. 1 Middle School'xiaohong [' Name ']; // 'xiaohong'xiaohong.name; // 'xiaohong'xiaohong.age; // undefiniert12-zu erkennen, ob Xiaoming ein bestimmtes Attribut hat, verwenden Sie den Operator:
'Name' in Xiaoming; // true'grade 'in Xiaoming; // Falsch *** Wenn in festgelegt wird, dass eine Eigenschaft existiert, kann diese Eigenschaft möglicherweise nicht Xiaoming sein, es kann durch Xiaoming geerbt werden:' tostring 'in Xiaoming; // true *** Um festzustellen, ob eine Eigenschaft im Besitz von Xiaoming selbst ist und nicht vererbt ist, können Sie die HaseownProperty () -Methode verwenden: Xiaoming.hasownProperty ('Name'); // truxiaoming.hasownProperty ('tostring'); // FALSCH13-Map
var m = new Map ([['Michael', 95], ['Bob', 75], ['Tracy', 85]]); // 2D -Array -Initialisierungsmethode M.get ('Michael'); // 95 var m = new map (); // initialisieren Sie direkt einen leeren MAPM.Set ('Adam', 67); // fügen Sie einen neuen Key-Valuem.set hinzu ('Bob', 59); M.Has ('Adam'); // ob Schlüssel 'Adam': Truem.get ('Adam'); // 67m.delete ('adam'); // Schlüssel 'adam'm.get (' adam ') löschen; // undefined var m = new map ([[1, 'x'], [2, 'y'], [3, 'z']); für (var n von m) {// Traverse Map Alert (n [1] + '=' + n [0]);}14-detaillierbare integrierte Methode, die eine Funktion empfängt und jede Iteration automatisch zurückruft.
var a = ['a', 'b', 'c']; A.foreach (Funktion (Element, Index, Array) {// Element: Zeigen Sie auf den Wert des aktuellen Elements // Index: Zeigen Sie auf den aktuellen Index // Array: Zeigen Sie auf das Array -Objekt selbst Alarm (Element);}); Set ähnelt Array, aber SET hat keinen Index, daher hat die Rückruffunktion maximal zwei Parameter: var s = neuer Satz (['A', 'B', 'C']); S.Forach (Funktion (Element, set) {alert (Element);}); Die Rückruffunktionsparameter von MAP sind Wert, Schlüssel und Karte selbst: var m = new map ([[1, 'x'], [2, 'y'], [3, 'z']); M.foreach (Funktion (Wert, Schlüssel, Karte) {alert (Wert);}); var a = ['a', 'b', 'c']; A.foreach (Funktion (Element) {alert (Element);});Die Map () -Methode von 15 Nutzung Array gibt unsere eigene Funktion über und Sie erhalten ein neues Array als Ergebnis:
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.map (Funktion (x) {return x*x;}). foreach (Funktion (Element) {alert (Element); // [1, 4, 9, 16, 25, 36, 49, 64, 81]});16-Use MAP (), um alle Zahlen in Array in Zeichenfolgen umzuwandeln:
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.map (String); // ['1', '2', '3', '4', '5', '6', '7', '8', '9']
17-Use-Array-Reduzierung (), um kumulative Berechnungen durchzuführen
var arr = []; für (var x = 1; x <= 100; x ++) {arr.push (x); // 1 ~ 100 in einen Array} -Alert eingeben (arr.R.ReDuce (Funktion (x, y) {return x+y; // kumulative Summe aller Objekte von arr, zurück das Summeergebnis});18-Use record (), um eine großartige Konvertierung zu machen: Konvertieren [1, 2, 5, 8, 0] in Ganzzahl 12580
var arr = [1, 2, 5, 8, 0]; alert (arr.ReDuce (Funktion (x, y) {return x*10+y;});19-Use-Filter (), um bestimmte Elemente des Arrays herauszufiltern
var arr = [0,1,2,3,4,5,6,7,8,9]; alert (arr.filter (Funktion (x) {return x%2 === 0;}); // 0,2,4,6,8 // Return True, Halten Sie die Deletion der leeren String in einem Array var arr = [',', ',', ',', ',', ',', ', Null, und', und und und und und undu, und und und und und und unddruck sie ',', ',', ',', ',', ',', ',', ',', ',', ', ']; alert (arr.filter (function (s) {return s && s.trim (); // Hinweis: In den Versionen unten gibt es keine Trim () -Methode unter IE9}); // ['a', 'b', 'c']20-Arrays sort () -Methode wandelt alle Elemente zuerst in Zeichenfolge um und sortiert sie dann, also ...
[10, 20, 1, 2] .Sort (); // [1, 10, 2, 20] Wenn Sie also nach Zahlengröße sortieren möchten, können Sie Folgendes schreiben: var arr = []; für (var x = 1; x <= 10; x ++) {arr.push (x);} document.write (arr+"<br/>"); document.write (arr.sort (x, y) {{return x <y? Um den Einfluss von Buchstaben zu ignorieren, müssen Sie zuerst in Groß- oder Kleinbuchstaben var arr = ['Google', 'Apple', 'Microsoft']; Alert (arr.sort (Funktion (S1, S2) {var x1 = s1.toUppercase (); var x2 = s2.touppercase (); // ['Apple', 'Google', 'Microsoft']21-Closure-Programmstruktur
① Ordnen Sie die Funktion als Rückgabewert dem Parameter zu, rufen Sie den Parameter auf, um das Berechnungsergebnis zu erhalten. } return sum;} var f = lazy_sum (arr); alert (f ()); ② Die zurückgegebene Funktion wird nicht sofort ausgeführt, wird jedoch erst ausgeführt, wenn f () als Funktion count () {var arr = [] bezeichnet wird. für (var i = 1; i <= 3; i ++) {arr.push (function () {return i * i;}); } return arr;} var results = count (); // Es gibt 3 Funktionen var f1 = Ergebnisse [0]; var f2 = Ergebnisse [1]; var f3 = Ergebnisse [2]; F1 (); // 16 Die zurückgegebene Funktion bezieht sich auf die Variable I, wird jedoch nicht sofort ausgeführt. f2 (); // 16 Wenn alle drei Funktionen zurückkehren, ist die von mir verwiesene Variable zu 4, F3 () geworden; // 16 Daher beträgt das Endergebnis 16 *** Bei der Rückgabe des Verschlusses, denken Sie daran: Beziehen Sie sich nicht auf Schleifenvariablen oder Variablen, die sich in Zukunft ändern werden! ③Was, wenn Sie sich auf Schleifenvariablen beziehen müssen? Die Methode besteht darin, eine andere Funktion zu erstellen und die Parameter der Funktion zu verwenden, um den aktuellen Wert der Schleifenvariablen zu binden. Unabhängig davon, wie sich die Schleifenvariable in der nachfolgenden Zeit ändert, bleibt der an den Funktionsparameter gebundene Wert unverändert: Funktion count () {var arr = []; für (var i = 1; i <= 3; i ++) {arr.push (Funktion (n) {return function () {return n*n;}} (i)); } return arr;} var Ergebnisse = count (); var f1 = Ergebnisse [0]; var f2 = Ergebnisse [1]; var f3 = Ergebnisse [2]; Alarm (F1 ()); // 1Alert (f2 ()); // 4alert (f3 ()); // 9 ④ In Sprachen ohne Klassenmechanismus und nur Funktion kann mit Hilfe von Schließungen eine private Variable eingekapselt werden. return {add: function () {n+= 1; return n; }}} var c = create_counter (); alert (c.Add ()); // 1Alert (c.Add ()); // 2alert (c.Add ()); // 3 *** In dem zurückgegebenen Objekt wird ein Schließung implementiert, der die lokale Variable n trägt, und auf den Variablen -n kann N nicht aus dem externen Code zugreifen. Mit anderen Worten, eine Schließung ist eine Funktion, die Staaten trägt, und sein Zustand kann von außen vollständig verborgen werden. ⑤ Verwenden Sie Math.Pow (x, y), um x^2 oder x^3 //math.pow(x, y)-> x^yfunction make_pow (y) {return function (x) {return Math.Pow (x, y); }} var pow2 = make_pow (2) var pow3 = make_pow (3) alert (pow2 (3)) // 9alert (pow3 (3)) // 2722-Arrow-Funktion (derzeit nur von Firefox unterstützt) // Parameter => Funktionskörper
var f = x => x*xxxalert (f (3)) // 27
23-Generator zur Erzeugung von Fibonacci-Sequenzen
Funktion* fib (max) {var t, a = 0, b = 1, n = 1; while (n <= max) {Relief A; t = a+b; a = b; B = t; n ++; } return a;} für (var x von fib (10)) {// das Generator -Objektdokument.Write (x+''); // Ausgabe 0, 1, 1, 2, 3} Verwenden Sie den Generator, um eine selbstwirkende ID zu generieren (keine globale Variable erforderlich) Funktion* next_id () {für (var x = 1; x <100; Ausbeute x ++);} var g = next_id (); alert (g.next (). value); // 1alert (g.next (). value); // 2alert (g.next (). value); // 3Das obige ist der vollständige Inhalt der JavaScript-Self-Study-Notizen (Must-Read-Artikel), die Ihnen vom Editor zur Verfügung gestellt wurden. Ich hoffe, jeder wird Wulin.com mehr unterstützen ~