In diesem Kapitel werden einige zugrunde liegende Prinzipien von JS nicht eingehend erklärt, wie diesen Zeiger, Umfang und Prototyp. Einige von ihnen beinhalten, die für die Vereinfachung des Code und die Verbesserung der Ausführungseffizienz während der Entwicklung förderlich sind, oder sie können als empirische Methode verwendet werden. Die Länge ist nicht lang, und kleine Schritte ermöglichen es Ihnen, den gesamten Artikel zu lesen und die Freude am Programmieren zu erleben.
Holen Sie sich zufällige Zahlen innerhalb von zwei Intervallen
Die Codekopie lautet wie folgt:
Funktion getrandomnum (min, max) {// Randomummern innerhalb von zwei Intervallen abrufen
// @南南南南南南 schlägt vor, dass der erste Parameter größer ist als der zweite Parameter. Daher ist das Hinzufügen eines Urteils zuverlässiger
if (min> max)
Max = [min, min = max] [0]; // Tauschen Sie schnell zwei Variablenwerte aus
var range = max - min + 1;
var rand = math.random ();
return min + math.floor (rand * range);
};
Gibt einen positiven/negativen Parameter zufällig zurück
Die Codekopie lautet wie folgt:
Funktion getrandomxy (num) {// geben einen zufälligen positiven/negativen Parameter zurück
Num = neue Zahl (num);
if (math.random () <= 0,5)
num = -num;
Rückgabe num;
}
SetInterval () oder setTimeout () Timer -Funktionsparameter für Timer -Funktionen
Die Codekopie lautet wie folgt:
var s = 'Ich bin ein Parameter';
Funktion fn (args) {
console.log (args);
}
var a = setInterval (fn (s), 100); // xxxxx Fehler xxxxxx
var b = setInterval (function () {// korrekt, rufen Sie die zeitgesteuerte Funktion mit anonymer Funktion auf
fn (s);
}, 100);
setInterval () oder setTimeout () Timer rekursiv aufgerufen
Die Codekopie lautet wie folgt:
var s = true;
Funktion fn2 (a, b) {// Schritt 3
if (s) {
ClearInterval (a);
ClearInterval (b);
}
};
Funktion fn (a) {// Schritt 2
var b = setInterval (function () {
FN2 (a, b) // In zwei Timer passieren
}, 200)
};
var a = setInterval (function () {// Schritt 1
fn (a); // b repräsentiert den Timer selbst, der an Sitzparametern übergeben werden kann
}, 100);
String in die Nummer konvertieren
Die Codekopie lautet wie folgt:
// keine neue Nummer (String) oder Nummer (String) benötigt einfach Nullen von der Zeichenfolge abhängig
var str = '100'; // str: String
var num = str - 0; // num: Nummer
NULL Value -Urteilsvermögen
Die Codekopie lautet wie folgt:
var s = ''; // leere Zeichenfolge
If (! S) // Die leere Zeichenfolge wird standardmäßig in boolean false konvertiert und kann direkt in der Urteilserklärung geschrieben werden
if (s! = null) // aber leerer Zeichenfolge! = null
if (s! = undefiniert) // leerer String ist auch! = undefiniert
Dh Browser parseint () Methode
Die Codekopie lautet wie folgt:
// Die folgende Konvertierung beträgt 0 im IE, und andere Browser sind 1. Dies hängt mit der Erklärung des IE -Browsers der Ziffern zusammen.
var inum = parseInt (01);
// Das kompatible Schreiben ist also
var num = parseInt (neue Zahl (01));
Firebug debuggen den JS -Code bequem vor
Die Codekopie lautet wie folgt:
// Firebug verfügt über ein integriertes Konsolenobjekt, das integrierte Methoden zur Anzeige von Informationen bereitstellt
/**
* 1. Zum Beispiel: console.log (" %d Jahr %d Monat %d Tag", 2011, 3, 26)
* 2: Wenn es zu viele Informationen gibt, können Sie sie in Gruppen anzeigen. Die verwendeten Methoden sind Console.group () und console.groupend ()
* 3: console.dir () kann alle Eigenschaften und Methoden eines Objekts anzeigen
* 4: console.dirxml () wird verwendet, um den in einem Knoten einer Webseite enthaltenen HTML/XML -Code anzuzeigen
* 5: console.assert () behaupten, um zu bestimmen, ob ein Ausdruck oder eine Variable wahr ist
* 6: console.trace () wird verwendet, um die Aufrufspur der Funktion zu verfolgen
* 7: console.time () und console.timeend () werden verwendet, um die Laufzeit des Codes anzuzeigen
* 8: Die Leistungsanalyse (Profiler) besteht darin, die Laufzeit jedes Teils des Programms zu analysieren, um den Engpass herauszufinden. Die verwendete Methode ist console.profile () .... fn .... console.profileend ()
*/
Nehmen Sie schnell die aktuellen Millisekunden
Die Codekopie lautet wie folgt:
// t == Der aktuelle System Millisekundenwert, Grund: Der + Zeichenoperator wird aufgerufen, und die Datumsmethode von ValueOf () wird aufgerufen.
var t = +neues Datum ();
Nehmen Sie schnell Dezimalgülle -Bits
Die Codekopie lautet wie folgt:
// x == 2, die folgenden x -Werte sind 2, und negative Zahlen können ebenfalls konvertiert werden
var x = 2.00023 | 0;
// x = '2.00023' | 0;
Zwei Variablenwerte austauschen (keine Zwischenbetrag )
Die Codekopie lautet wie folgt:
var a = 1;
var b = 2;
a = [b, b = a] [0]
Alarm (a+'_'+b) // Die Werte von Ergebnis 2_1, A und B wurden getauscht.
Logisch oder '||' ' Operator
Die Codekopie lautet wie folgt:
// b ist nicht null: a = b, b ist null: a = 1.
var a = b || 1;
// Die häufigste Verwendung besteht darin, Parameter für eine Plug-in-Methode zu übergeben und Ereigniszielelemente zu erhalten: Ereignis = Ereignis || window.event
// dh hat ein window.event -Objekt, aber FF nicht.
Nur das Methodeobjekt hat Prototypeigenschaften
Die Codekopie lautet wie folgt:
// Die Methode hat die Objektprototyp -Prototyp -Eigenschaft, während die ursprünglichen Daten diese Eigenschaft nicht haben, wie z. B. var a = 1, hat a keine Prototyp -Eigenschaft
Funktion person () {} // menschlicher Konstruktor
Person.Prototype.run = function () {alert ('run ...'); } // Prototyp -Auslaufmethode
Person.run (); // Fehler
var p1 = new Person (); // Die Prototyp -Laufmethode wird P1 nur dann zugeordnet, wenn der neue Bediener verwendet wird.
p1.run (); // laufen...
Schnell den Wochentag bekommen
Die Codekopie lautet wie folgt:
// Die aktuelle Zeit des Berechnungssystems ist die Woche
var week = "Heute ist: Woche" + "Tag eins, zwei, drei, vier, fünf, sechs" .charat (neuer Datum (). Getday ());
Schließung Vorurteile
Die Codekopie lautet wie folgt:
/**
* Verschluss: Jede JS -Methode kann als Verschluss bezeichnet werden. Dies geschieht nicht nur, wenn sich eine Inline -Funktion auf einen bestimmten Parameter oder eine bestimmte Eigenschaft einer externen Funktion bezieht.
* Es hat ein unabhängiges Zielfernrohr, in dem mehrere Subskope existieren können (d. H. Methoden verschachtelte Methoden), und schließlich ist der Verschlussbereich der Umfang der äußersten Methode.
* Es enthält die Methodenparameter des selbst und die Methodenparameter aller eingebetteten Funktionen. Wenn eine eingebettete Funktion extern eine Referenz hat, ist der Umfang der Referenz der (obere Ebene) Methodenbereich, in dem sich die Referenzfunktion befindet.
*/
Funktion a (x) {
Funktion b () {
Alarm (x); // Referenz -Externe Funktionsparameter
}
Rückkehr B;
}
var run = a ('run ...');
// Aufgrund der Ausdehnung des Umfangs können Variablen der externen Funktion A verwiesen werden und angezeigt werden
laufen(); // alert (): run ..
Holen Sie sich die Adresse der Adresse Parameter und zeitgesteuerte Aktualisierung
Die Codekopie lautet wie folgt:
// ein Fragezeichen bekommen? Der folgende Inhalt enthält das Fragezeichen
var x = window.location.Search
// Erhalten Sie den Inhalt hinter der Alarmnummer # einschließlich der # Nummer
var y = window.location.hash
// automatische Webseiten -Aktualisierung kann mit Timer erreicht werden
window.location.reload ();
Null und undefiniert
Die Codekopie lautet wie folgt:
/**
* Der undefinierte Typ hat nur einen Wert, dh undefiniert. Wenn die deklarierte Variable nicht initialisiert wurde, ist der Standardwert der Variablen undefiniert.
* Der Null -Typ hat auch nur einen Wert, d. H. Null. 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.
* ECMascript ist der Ansicht, dass undefined von Null abgeleitet wird, sodass sie als gleich definiert sind.
* Aber wenn wir in einigen Fällen zwischen diesen beiden Werten unterscheiden müssen, was sollen wir dann tun? Die folgenden zwei Methoden können angewendet werden
* Bei Urteilen ist es am besten, '===' starkes Typ zu verwenden, wenn beurteilt wird, ob das Objekt einen Wert entsprechend den Bedürfnissen hat.
*/
var a;
alarm (a === null); // falsch, weil a kein leeres Objekt ist
alarm (a === undefiniert); // true, da a nicht initialisiert wird, ist der Wert undefiniert
// Einführen
alarm (null == undefiniert); // true, weil der Bediener '==' Typ Conversion durchführt,
// ähnlich
alarm (1 == '1'); // WAHR
alarm (0 == false); // True, falsche Konvertiten in die Nummer 0
Fügen Sie der Methode dynamisch Parameter hinzu
Die Codekopie lautet wie folgt:
// Methode A hat einen weiteren Parameter 2
Funktion a (x) {
var arg = array.prototype.push.call (Argumente, 2);
ALERT (Argumente [0]+'__'+Argumente [1]);
}
Passen Sie aus dem Auswählen des Randstils an
Die Codekopie lautet wie folgt:
<!-Kopieren Sie auf die Seite, um den Effekt auszuprobieren. Sie können den Stil nach Belieben anpassen->
<span style = "Border: 1px solide rot; Position: absolut; Überlauf: verborgen;" >
<select style = "margin: -2px;">
<option> Benutzerdefinierte Randstil auswählen </Option>
<option> 222 </option>
<OPTION> 333 </Option>
</select>
</span>
Die einfachste Farbpalette
Die Codekopie lautet wie folgt:
<!-Js, um seinen Wertwert zu extrahieren und jede Farbe auf jedes Objekt festzulegen->
<Eingabetyp = color />
Funktionen, Objekte ist Array?
Die Codekopie lautet wie folgt:
var anObject = {}; // ein Objekt
anObject.aproperty = "Eigenschaft des Objekts"; // eine Eigenschaft des Objekts
anObject.amethod = function () {alert ("Methode des Objekts")}; // eine Methode des Objekts
// Konzentrieren Sie sich auf Folgendes:
alarm (anObject ["aproperty"]); // Sie können auf das Attribut als Array mit dem Attributnamen als Index zugreifen
Anobject ["Amethod"] (); // Sie können eine Methode als Array mit dem Methodennamen als Index aufrufen
für (var s in anObject) // Übertragen Sie alle Eigenschaften und Methoden des Objekts für die iterative Verarbeitung
Alarm (s + ”ist a” + typeof (anObject [s]));
// Es gilt das gleiche für Objekt des Funktionstyps:
var afunction = function () {}; // eine Funktion
afrction.aproperty = "Eigenschaft der Funktion"; // eine Eigenschaft der Funktion
Afunction.amethod = function () {alert ("Funktionsmethode")}; // eine Funktionsmethode
// Konzentrieren Sie sich auf Folgendes:
ALERT (AFUNCTION ["APROPERTY"]); // Sie können auf die Eigenschaften als Array mit dem Attributnamen als Index zugreifen
AFUUNTION ["Amethod"] (); // Sie können eine Methode mit dem Methodennamen als Index aufrufen, wenn eine Funktion als Index für ein Array verwendet wird
für (var s in Apenction) // alle Eigenschaften und Methoden der Durchlauffunktion für die iterative Verarbeitung iterieren
Warnungen (s + ”ist a” + typeof (afrction [s]));
Die Codekopie lautet wie folgt:
/**
* Ja, Objekte und Funktionen können wie Arrays zugegriffen und verarbeitet werden, wobei Attributnamen oder Methodennamen als Einweis verwendet werden.
* Sollte es also als Array oder Objekt angesehen werden? Wir wissen, dass Arrays als lineare Datenstrukturen angesehen werden sollten. Lineare Datenstrukturen haben im Allgemeinen bestimmte Regeln, die für einheitliche Batch -Iterationsoperationen usw. geeignet sind, was ein bisschen wie Wellen entspricht.
* Objekte sind diskrete Datenstrukturen, die für die Beschreibung von verstreuten und personalisierten Dingen geeignet sind, ein bisschen wie Partikel.
* Daher können wir auch fragen: Sind Objekte in JavaScript -Wellen oder Partikeln? Wenn es die Objektquantentheorie gibt, muss die Antwort: Wellenpartikel-Dualität sein!
* Daher haben Funktionen und Objekte in JavaScript sowohl die Eigenschaften von Objekten als auch Arrays. Das Array hier heißt "Wörterbuch", eine Sammlung von Namenswertpaaren, die willkürlich gedehnt und kondensiert werden können. Tatsächlich ist die interne Implementierung von Objekt und Funktion eine Wörterbuchstruktur, aber diese Wörterbuchstruktur zeigt ein reichhaltiges Erscheinungsbild durch strenge und exquisite Grammatik. So wie die Quantenmechanik Partikel verwendet, um an einigen Stellen Probleme zu erklären und mit Problemen umzugehen, während Wellen Probleme bei anderen erklären und mit ihnen umgehen. Sie können sich auch frei entscheiden, Objekte oder Arrays zu verwenden, um bei Bedarf Probleme zu erklären und mit Problemen umzugehen. Solange Sie diese wunderbaren Funktionen von JavaScript gut erfassen können, können Sie viel präzise und leistungsstarke Code schreiben.
*/
Wenn Sie auf einen leeren Bereich klicken, können Sie ein bestimmtes Element zum Schließen/Ausblenden auslösen
Die Codekopie lautet wie folgt:
/**
* Manchmal verfügt die Seite über ein Dropdown-Menü oder etwas, wodurch der Benutzer sie ausblendet, wenn Sie auf ein Leerzeichen klicken oder auf andere Elemente klicken.
* Ein globales Dokument -Klick -Ereignis kann ausgelöst werden
* @param {Objekt} "Zielobjekt"
*/
$ (Dokument) .Click (Funktion (e) {
$ ("Zielobjekt"). hide ();
});
/**
* Aber ein Nachteil ist, dass Sie, wenn Sie auf das Element klicken und es anzeigen möchten
* Wenn Sie nicht verhindern, dass das Ereignis zum globalen Dokumentobjekt in der Zeit klickt, wird die obige Methode ausgeführt
*/
$ ("Zielobjekt"). Click (Funktion (Ereignis) {
Ereignis = Ereignis || Fenster.Event;
Event.StopPropagation (); // Wenn Sie auf das Zielobjekt klicken, verhindern Sie, dass das Ereignis rechtzeitig sprudelt
$ ("Zielobjekt"). Toggle ();
});
Die oben genannten sind einige häufig verwendete JavaScript -Methoden, die von mir zusammengestellt wurden. Sie können während der Entwicklung direkt aufgezeichnet und verwendet werden. Dies wird auch für bedürftige Freunde empfohlen.