Heim > Web-Frontend > js-Tutorial > Hauptteil

Fassen Sie einige Funktionen und Anweisungen zusammen, deren Verwendung in JavaScript vermieden werden soll

伊谢尔伦
Freigeben: 2017-07-26 13:26:06
Original
1287 Leute haben es durchsucht

Vermeiden Sie die Verwendung von Auswertungs- oder Funktionskonstruktoren

Die Verwendung von Auswertungs- oder Funktionskonstruktoren ist sehr teuer und erfordert eine Skript-Engine, die den Quellcode jedes Mal in ausführbaren Code konvertiert .
Darüber hinaus muss die Verwendung von eval zur Verarbeitung von Zeichenfolgen zur Laufzeit interpretiert werden.

Code, der langsam ausgeführt wird:

function addMethod(object, property, code) { 
object[property] = new Function(code); 
} 
addMethod(myObj, 'methodName', 'this.localVar=foo');
Nach dem Login kopieren

Code, der schneller ausgeführt wird:

function addMethod(object, property, func) { 
object[property] = func; 
} 
addMethod(myObj, 'methodName', function () { 'this.localVar=foo'; });
Nach dem Login kopieren


Vermeiden Sie die Verwendung mit
Obwohl Praktisch, da zusätzliche Zeit für die Referenzsuche erforderlich ist, da der Bereichskontext zur Kompilierungszeit nicht bekannt ist.

Code, der langsam läuft:

with (test.object) { 
foo = 'Value of foo property of object'; 
bar = 'Value of bar property of object'; 
}
Nach dem Login kopieren

Code, der schneller läuft:

var myObj = test.object; 
myObj.foo = 'Value of foo property of object'; 
myObj.bar = 'Value of bar property of object';
Nach dem Login kopieren


Verwenden Sie try-catch-finally nicht in Funktionen mit kritischen Leistungsanforderungen

try-catch-finally erstellt bei jeder Ausführung eine neue Funktion im aktuellen Bereich . Variable, die zum Zuweisen von Ausnahmen bei der Anweisungsausführung verwendet wird.
Die Ausnahmebehandlung sollte auf einer hohen Ebene im Skript erfolgen, wo Ausnahmen nicht sehr häufig auftreten, beispielsweise außerhalb einer Schleife.
Wenn möglich, vermeiden Sie die Verwendung von try-catch-finally ganz.

Code, der langsam ausgeführt wird:

var object = ['foo', 'bar'], i; 
for (i = 0; i < object.length; i++) { 
try { 
// do something that throws an exception 
} catch (e) { 
// handle exception 
} 
}
Nach dem Login kopieren

Code, der schneller ausgeführt wird:

var object = [&#39;foo&#39;, &#39;bar&#39;], i; 
try { 
for (i = 0; i < object.length; i++) { 
// do something 
} 
} catch (e) { 
// handle exception 
}
Nach dem Login kopieren


Vermeiden Sie die Verwendung globaler Variablen
Wenn Sie globale Variablen in einer Funktion oder einem anderen Bereich verwenden, muss die Skript-Engine den gesamten Bereich durchlaufen, um sie zu finden.
Variablen im globalen Bereich bleiben während des gesamten Lebenszyklus des Skripts bestehen, und diejenigen im lokalen Bereich werden zerstört, wenn der lokale Bereich verloren geht.

Code, der langsam ausgeführt wird:

var i, 
str = &#39;&#39;; 
function globalScope() { 
for (i=0; i < 100; i++) { 
str += i; // here we reference i and str in global scope which is slow 
} 
} 
globalScope();
Nach dem Login kopieren

Code, der schneller ausgeführt wird:

function localScope() { 
var i, 
str = &#39;&#39;; 
for (i=0; i < 100; i++) { 
str += i; // i and str in local scope which is faster 
} 
} 
localScope();
Nach dem Login kopieren


Vermeiden Sie Leistungsprobleme Eine for-in
for-in-Schleife in einer kritischen Funktion erfordert, dass die Skript-Engine eine Liste aller aufzählbaren Eigenschaften erstellt und prüft, ob es sich um ein Duplikat der vorherigen handelt.
Wenn der Code in Ihrem for-Schleifenbereich das Array nicht ändert, können Sie die Länge des Arrays vorab berechnen und damit das Array in der for-Schleife iterieren.

Code, der langsam läuft:

var sum = 0; 
for (var i in arr) { 
sum += arr[i]; 
}
Nach dem Login kopieren

Code, der schneller läuft:

var sum = 0; 
for (var i = 0, len = arr.length; i < len; i++) { 
sum += arr[i]; 
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonFassen Sie einige Funktionen und Anweisungen zusammen, deren Verwendung in JavaScript vermieden werden soll. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!