1. Variablenkonvertierung
Es scheint sehr einfach zu sein, aber soweit ich gesehen habe, ist die Verwendung von Konstruktoren wie Array() oder Number() eine gängige Praxis. Verwenden Sie zum Konvertieren von Variablen immer primitive Datentypen (manchmal auch Literale genannt), was keine zusätzlichen Auswirkungen hat, aber effizienter ist.
var myVar = "3.14159",
str = ""+ myVar,// to string
int = ~~myVar, // to integer
float = 1*myVar, // to float
bool = !!myVar, /* to boolean – jede Zeichenfolge mit Länge
und jede Zahl außer 0 sind wahr */
array = [myVar]; // to array
convert date (new Date(myVar)) und regulärer Ausdruck (new RegExp(myVar)) müssen den Konstruktor verwenden, und beim Erstellen des regulären Ausdrucks muss das Format /pattern/flags verwendet werden.
2. Dezimal in Hexadezimal oder Oktal umwandeln oder umgekehrt
Schreiben Sie eine separate Funktion zum Konvertieren von Hexadezimal (oder Oktal)? Hören Sie jetzt auf! Es stehen einfachere vorgefertigte Funktionen zur Verfügung:
(int).toString(16); // konvertiert int in hex, z. B. 12 => "C"
(int).toString(8); int zu oktal, z. B. 12 => "14"
parseInt(string,16) // konvertiert hexadezimal in int, z. B. "FF" => 255
parseInt(string,8) / / konvertiert oktal zu int, z. B. „20“ => 3. Zusätzlich zu den im vorherigen Abschnitt vorgestellten Tipps finden Sie hier weitere Tipps zur Verarbeitung von Zahlen. gibt 255
020; // Oktaldeklaration zurück, gibt 16
1e3; // Exponential, dasselbe wie 1 * Math.pow(10,3), gibt 1000
(1000).toExponential (); / Im Gegensatz zu previous, gibt 1e3 zurück
(3.1415).toFixed(3); // Rundet die Zahl, gibt „3.142“ zurück
4.Javascript-Versionserkennung
Sie wissen, welche Version von Javascript unterstützt wird ? Wenn Sie es nicht wissen, gehen Sie zu Wikipedia und sehen Sie sich die Javascript-Versionstabelle an. Aus irgendeinem Grund werden einige Funktionen von Javascript 1.7 nicht allgemein unterstützt. Die meisten Browser unterstützen jedoch die Funktionen der Versionen 1.8 und 1.8.1. (Hinweis: Alle IE-Browser (IE8 oder älter) unterstützen nur Javascript-Version 1.5) Hier ist ein Skript, das nicht nur die JavaScript-Version durch Erkennung von Funktionen erkennen kann, sondern auch die von einer bestimmten Javascript-Version unterstützten Funktionen überprüfen kann.
var JS_ver = [];
(Number.prototype.toFixed)?JS_ver.push("1.5"):false;
([].indexOf && [].forEach)?JS_ver.push( "1.6"):false;
((function(){try {[a,b] = [0,1];return true;}catch(ex) {return false;}})())?JS_ver .push("1.7"):false;
([].reduce && [].reduceRight && JSON)?JS_ver.push("1.8"):false;
("".trimLeft)?JS_ver. push("1.8.1"):false;
JS_ver.supports = function()
{
if (arguments[0])
return (!!~this.join().indexOf (arguments[0] +",") +",");
else
return (this[this.length-1]);
}
alert("Neueste unterstützte Javascript-Version: "+ JS_ver.supports());
alert("Unterstützung für Version 1.7 : "+ JS_ver.supports("1.7"));
5. Verwenden Sie window.name für die einfache Sitzungsverarbeitung
Das ist Etwas, das mir wirklich gefällt. Sie können eine Zeichenfolge als Wert der Eigenschaft window.name angeben, bis Sie die Registerkarte oder das Fenster schließen. Obwohl ich keine Skripte bereitgestellt habe, empfehle ich Ihnen dringend, diese Methode zu nutzen. Beim Erstellen einer Website oder Anwendung ist es beispielsweise sehr nützlich, zwischen dem Debug- und Testmodus zu wechseln.
6. Bestimmen Sie, ob das Attribut vorhanden ist.
Dieses Problem umfasst zwei Aspekte: nicht nur die Überprüfung der Existenz des Attributs, sondern auch das Ermitteln des Attributtyps. Aber wir übersehen immer diese kleinen Dinge:
// SCHLECHT: Dies führt zu einem Fehler im Code, wenn foo undefiniert ist
if (foo) {
doSomething();
}
// GUT: Dies verursacht jedoch keine Fehler, selbst wenn
// foo auf NULL oder false gesetzt ist, wird die Bedingung als wahr validiert
if (typeof foo != "undefined") {
DoSomething ();
}
// BESSER: Dies verursacht keine Fehler und außerdem
// Werte NULL oder false werden nicht als wahr validiert
if (window.foo) {
doSomething();
}
In einigen Fällen jedoch, wenn wir eine tiefere Struktur haben und angemessenere Prüfungen benötigen, können wir Folgendes tun:
// UGLY: Wir müssen die Existenz beweisen von jedem
// Objekt, bevor wir sicher sein können, dass die Eigenschaft tatsächlich existiert
if (window.oFoo && oFoo.oBar && oFoo.oBar.baz) {
doSomething();
}
7. Übergeben Sie Parameter an die Funktion
Wenn die Funktion sowohl erforderliche als auch optionale Parameter hat, können wir Folgendes tun:
function doSomething(arg0, arg1, arg2, arg3, arg4) {
...
}
doSomething('', 'foo', 5, [], false);
Und die Übergabe eines Objekts ist immer bequemer als die Übergabe einer Reihe von Parametern:
function doSomething() {
// Verlässt die Funktion, wenn nichts übergeben wird
if (!arguments[0]) {
return false;
}
var oArgs = arguments[0]
arg0 = oArgs.arg0 | |. "",
arg1 = oArgs.arg1 ||. "",
arg2 = oArgs.arg2 ||. 0,
arg3 = oArgs.arg4 ||. false;
}
doSomething({
arg1 : "foo",
arg2 : 5,
arg4 : false
});
Dies ist nur ein Objekt Ein sehr einfaches Beispiel für die Übergabe als Parameter: Wir können beispielsweise auch ein Objekt mit dem Variablennamen als Schlüssel und dem Standardwert als Wert deklarieren.
8. Verwenden Sie document.createDocumentFragment()
Möglicherweise müssen Sie mehrere Elemente dynamisch an das Dokument anhängen. Wenn Sie sie jedoch direkt in das Dokument einfügen, muss das Dokument jedes Mal neu gestaltet werden. Stattdessen sollten Sie Dokumentfragmente verwenden und nach der Fertigstellung nur einmal anhängen:
function createList() {
var aLI = ["erstes Element", "zweites Element", "drittes Element",
"viertes Element", "fünftes Element"];
// Erstellt das Fragment
var oFrag = document.createDocumentFragment();
while (aLI.length) {
var oLI = document.createElement("li");
// Entfernt das erste Element aus dem Array und hängt es an
// als Textknoten an LI element
oLI.appendChild(document.createTextNode(aLI.shift()));
oFrag.appendChild(oLI);
}
document.getElementById('myUL').appendChild(oFrag) ;
}
9. Übergeben Sie eine Funktion an die Methode replace()
Manchmal möchten Sie einen bestimmten Teil der Zeichenfolge durch einen anderen Wert ersetzen. Der beste Weg ist, ihn an String.replace() zu übergeben. eine eigenständige Funktion. Hier ist ein einfaches Beispiel:
var sFlop = "Flop: [Ah] [Ks] [7c]"
var aValues = {"A": "Ace", "K": "King"; ,7 :"Sieben"};
var aSuits = {"h":"Herzen", "s": "Pik",
"d": "Diamanten", "c": "Kreuz"} ;
sFlop = sFlop.replace(/[w+]/gi, function(match) {
match = match.replace(match[2], aSuits[match[2]]);
match = match. replace(match[1], aValues[match[1]] +" of ");
return match;
});
// string sFlop enthält jetzt:
// " Flop: [Ass der Herzen] [König der Pik] [Sieben der Kreuze]“
10. Verwendung von Beschriftungen in Schleifenwww.2cto.com
Manchmal sind Schleifen in Schleifen verschachtelt. Vielleicht möchten Sie sie verlassen Für die Schleife können Sie die Bezeichnung verwenden:
outerloop:
for (var iI=0;iI<5;iI++) {
if (somethingIsTrue()) {
// Unterbricht die äußere Schleife Iteration
Break Outerloop; Inner Loop Iteration
Break Innerloop;
}
}
}