


45 Vorsichtsmaßnahmen und Fähigkeiten zur JavaScript-Programmierung_Javascript-Kenntnisse
JavaScript ist die beliebteste Programmiersprache der Welt und kann für die Webentwicklung, die Entwicklung mobiler Anwendungen (PhoneGap, Appcelerator), die serverseitige Entwicklung (Node.js und Wakanda) usw. verwendet werden. Für viele Anfänger ist JavaScript auch die erste Sprache, die in die Welt des Programmierens einsteigt. Es kann verwendet werden, um ein einfaches Eingabeaufforderungsfeld im Browser anzuzeigen oder den Roboter über Nodebot oder Nodruino zu steuern. Entwickler, die JavaScript-Code mit klarer Struktur und hoher Leistung schreiben können, sind heute die gefragtesten Personen auf dem Personalbeschaffungsmarkt.
In diesem Artikel werde ich einige JavaScript-Tipps, Geheimnisse und Best Practices teilen, die bis auf wenige Ausnahmen sowohl für die JavaScript-Engine des Browsers als auch für den serverseitigen JavaScript-Interpreter gelten.
Der Beispielcode in diesem Artikel hat den Test auf der neuesten Version von Google Chrome 30 (V8 3.20.17.15) bestanden.
1. Verwenden Sie unbedingt das Schlüsselwort var, wenn Sie einer Variablen zum ersten Mal einen Wert zuweisen
Wenn eine Variable direkt zugewiesen wird, ohne deklariert zu werden, wird sie standardmäßig als neue globale Variable verwendet. Vermeiden Sie die Verwendung globaler Variablen.
2. Verwenden Sie === anstelle von ==
Die Operatoren== und != konvertieren Datentypen bei Bedarf automatisch. Aber === und !== nicht, sie vergleichen Werte und Datentypen gleichzeitig, was sie auch schneller macht als == und !=.
[10] === 10 // ist falsch
[10] == 10 // ist wahr
'10' == 10 // ist wahr
'10' === 10 // ist falsch
[] == 0 // ist wahr
[] === 0 // ist falsch
'' == false // ist wahr, aber true == "a" ist falsch
'' === false // ist false
3. Die logischen Ergebnisse von unterbestimmt, null, 0, falsch, NaN und leerer Zeichenfolge sind alle falsch
4. Verwenden Sie am Ende der Zeile das Semikolon
In der Praxis ist es am besten, Semikolons zu verwenden. Es macht nichts, wenn Sie vergessen, sie zu schreiben. In den meisten Fällen fügt der JavaScript-Interpreter sie automatisch hinzu. Weitere Informationen darüber, warum Semikolons verwendet werden, finden Sie im Artikel „Die Wahrheit über Semikolons in JavaScript“.
5. Objektkonstruktor verwenden
Funktion Person(Vorname, Nachname){
This.firstName = firstName;
This.lastName = lastName;
}
var Saad = neue Person("Saad", "Mousliki");
6. Verwenden Sie Typ, Instanz und Konstruktor sorgfältig
typeof: Unärer JavaScript-Operator, der verwendet wird, um den ursprünglichen Typ der Variablen in Form einer Zeichenfolge zurückzugeben. Beachten Sie, dass typeof null auch ein Objekt zurückgibt (Array, Array, Zeit, Datum usw.). Objekt
Konstruktor: interne Prototypeigenschaft, kann durch Code
überschrieben werden Instanz von: JavaScript-Operator, sucht im Konstruktor in der Prototypenkette und gibt „true“ zurück, wenn er gefunden wird, andernfalls wird „false“ zurückgegeben
var arr = ["a", "b", "c"];
typeof arr; // „Objekt“ zurückgeben
arr-Instanz des Arrays // true
arr.constructor(); //[]
7. Selbstaufrufende Funktionen verwenden
Die Funktion wird direkt nach der Erstellung automatisch ausgeführt und wird normalerweise als selbstaufgerufene anonyme Funktion (selbstaufgerufene anonyme Funktion) oder direkt aufgerufener Funktionsausdruck (sofort aufgerufener Funktionsausdruck) bezeichnet. Das Format ist wie folgt:
(function(){
//Der hier platzierte Code wird automatisch ausgeführt
})();
(Funktion(a,b){
var result = a b;
Ergebnis zurückgeben;
})(10,20)
8. Erhalten Sie zufällig Mitglieder aus dem Array
var items = [12, 548, 'a', 2, 5478, 'foo', 8852, , 'Doe', 2145, 119];
var randomItem = items[Math.floor(Math.random() * items.length)];
9. Erhalten Sie Zufallszahlen innerhalb des angegebenen Bereichs
Diese Funktion ist besonders nützlich, wenn gefälschte Daten zu Testzwecken generiert werden, beispielsweise Gehälter innerhalb eines bestimmten Bereichs.
var x = Math.floor(Math.random() * (max - min 1)) min;
10. Erzeugen Sie ein digitales Array von 0 bis zum angegebenen Wert
var zahlenArray = [] , max = 100;
for( var i=1; zahlenArray.push(i ) < max;); // zahlen = [1,2,3 ... 100]
11. Generieren Sie zufällige alphanumerische Zeichenfolgen
Funktion genericRandomAlphaNum(len) {
var rdmString = "";
for( ; rdmString.length < len; rdmString = Math.random().toString(36).substr(2));
Gibt rdmString.substr(0, len);
zurück
12. Unterbrechen Sie die Reihenfolge des Zahlenarrays
var-Zahlen = [5, 458, 120, -215, 228, 400, 122205, -85411];
zahlen = zahlen.sort(function(){ return Math.random() - 0.5});
/* Das Zahlenarray sieht wie folgt aus: [120, 5, 228, -215, 400, 458, -85411, 122205] */
Hier wird die integrierte Array-Sortierfunktion von JavaScript verwendet. Eine bessere Möglichkeit besteht darin, speziellen Code zu verwenden, um sie zu implementieren (z. B. den Fisher-Yates-Algorithmus). Diese Diskussion finden Sie auf StackOverFlow.
13. Leerzeichen aus Zeichenfolgen entfernen
Java, C#, PHP und andere Sprachen implementieren alle spezielle Funktionen zum Entfernen von String-Leerzeichen, aber in JavaScript gibt es keine solche Funktion. Sie können den folgenden Code verwenden, um eine Trimmfunktion für das String-Objekt auszuführen:
String.prototype.trim = function(){return this.replace(/^s |s $/g, "");};
Die neue JavaScript-Engine verfügt bereits über eine native Implementierung von trim().
14. Zwischen Arrays anhängen
var array1 = [12 , „foo“ , {name „Joe“} , -2458];
var array2 = ["Doe" , 555 , 100];
Array.prototype.push.apply(array1, array2);
/* Der Wert von array1 ist [12, „foo“, {name „Joe“}, -2458, „Doe“, 555, 100] */
15. Objekt in Array konvertieren
var argArray = Array.prototype.slice.call(arguments);
16. Überprüfen Sie, ob es sich um eine Zahl handelt
Funktion isNumber(n){
Rückgabe !isNaN(parseFloat(n)) && isFinite(n);
}
17. Überprüfen Sie, ob es sich um ein Array handelt
Funktion isArray(obj){
Return Object.prototype.toString.call(obj) === '[object Array]' ;
}
Wenn die toString()-Methode jedoch überschrieben wird, funktioniert sie nicht. Sie können auch die folgende Methode verwenden:
Array.isArray(obj); // es ist eine neue Array-Methode
Wenn im Browser kein Frame verwendet wird, kann auch die Instanz von verwendet werden. Wenn der Kontext jedoch zu komplex ist, kann es zu Fehlern kommen.
var myFrame = document.createElement('iframe');
document.body.appendChild(myFrame);
var myArray = window.frames[window.frames.length-1].Array;
var arr = new myArray(a,b,10); // [a,b,10]
// Der Konstruktor von myArray ist verloren gegangen und das Ergebnis von Instanz von wird abnormal sein
// Der Konstruktor kann nicht über mehrere Frames hinweg geteilt werden
arr instanceof Array; // false
18. Holen Sie sich die Maximal- und Minimalwerte im Array
var-Zahlen = [5, 458, 120, -215, 228, 400, 122205, -85411]; var maxInNumbers = Math.max.apply(Math, Zahlen);
var minInNumbers = Math.min.apply(Math, Zahlen);
19. Löschen Sie das Array
sein
Wenn Sie delete direkt auf ein Array-Element anwenden, wird es nicht gelöscht, sondern das Element wird auf undefiniert gesetzt. Beim Löschen von Array-Elementen sollte Splice verwendet werden.
Nicht:
Elemente löschen[3]; // true zurückgeben
items.length; // return 11
/* Das Ergebnis der Elemente ist [12, 548, „a“, undefiniert × 1, 5478, „foo“, 8852, undefiniert × 1, „Doe“, 2154, 119] */
items.splice(3,1) ;
items.length; // 10 zurückgeben
/* Das Ergebnis der Elemente ist [12, 548, „a“, 5478, „foo“, 8852, undefiniert × 1, „Doe“, 2154, 119]
delete kann beim Löschen der Eigenschaften eines Objekts verwendet werden.
21. Verwenden Sie das Längenattribut, um das Array zu kürzen
Im vorherigen Beispiel wurde das Längenattribut zum Löschen des Arrays verwendet. Es kann auch zum Abschneiden des Arrays verwendet werden:
Wenn gleichzeitig das Längenattribut vergrößert wird, erhöht sich der Längenwert des Arrays und undefiniert wird als neues zu füllendes Element verwendet. Länge ist eine beschreibbare Eigenschaft.
Logisches ODER kann auch verwendet werden, um Standardwerte festzulegen, beispielsweise Standardwerte für Funktionsparameter.
Code kopieren
Funktion doSomething(arg1){
arg1 = arg1 ||. 10; // arg1 hat 10 als Standardwert, wenn es nicht bereits festgelegt ist
}
23. Lassen Sie die Funktion „map()“ eine Schleife über die Daten durchführen
var quadrate = [1,2,3,4].map(function (val) {
Rückgabewert * val;
});
// Quadrate sind gleich [1, 4, 9, 16]
24. Behalten Sie die angegebene Anzahl an Dezimalstellen bei
var num =2.443242342;
num = num.toFixed(4); // num wird gleich 2,4432 sein
Beachten Sie, dass toFixec() eine Zeichenfolge und keine Zahl zurückgibt.
25. Probleme mit der Gleitkommaberechnung
0,1 0,2 === 0,3 // ist falsch
9007199254740992 1 // ist gleich 9007199254740992
9007199254740992 2 // ist gleich 9007199254740994
Warum? Weil 0,1 0,2 gleich 0,30000000000000004 ist. Zahlen in JavaScript werden gemäß dem IEEE 754-Standard erstellt und intern als 64-Bit-Gleitkomma-Dezimalzahlen dargestellt. Weitere Informationen finden Sie unter der Codierung von Zahlen in JavaScript.
Dieses Problem kann durch die Verwendung von toFixed() und toPrecision() gelöst werden.
26. Überprüfen Sie die Eigenschaften des Objekts durch die For-In-Schleife
Die folgende Verwendung kann die Eingabe der Prototypeigenschaften des Objekts während der Iteration verhindern.
for (Var-Name im Objekt) {
If (object.hasOwnProperty(name)) {
// etwas mit dem Namen machen
}
}
27. Komma-Operator
var a = 0;
var b = ( a , 99 ); console.log(a); // a wird gleich 1 sein
console.log(b); // b ist gleich 99
28. Variablen, die für Berechnungen und Abfragen verwendet werden, vorübergehend speichern
In jQuery-Selektoren können ganze DOM-Elemente temporär gespeichert werden.
29. Überprüfen Sie im Voraus die an isFinite() übergebenen Parameter
Code kopieren
isFinite(undefiniert); // false
isFinite(); // false
isFinite(null); // wahr, darauf sollte besondere Aufmerksamkeit gelegt werden
30. Vermeiden Sie die Verwendung negativer Zahlen als Indizes in Arrays
Code kopieren
Beachten Sie, dass der an splice übergebene Indexparameter keine negative Zahl sein sollte. Wenn es sich um eine negative Zahl handelt, wird das Element am Ende des Arrays gelöscht.
Code kopieren
var person = {Name:'Saad', Alter: 26, Abteilung: {ID: 15, Name: "R&D"} };
var stringFromPerson = JSON.stringify(person);
/* Das Ergebnis von stringFromPerson ist „{“name“: „Saad“, „age“:26, „department“:{“ID“:15, „name“: „R&D“}}“ */
var personFromString = JSON.parse(stringFromPerson);
/* Der Wert von personFromString ist derselbe wie das Personenobjekt */
32. Verwenden Sie weder eval() noch den Funktionskonstruktor
eval() und Funktionskonstruktor (Funktionskonstruktor) sind relativ teuer. Bei jedem Aufruf muss die JavaScript-Engine den Quellcode in ausführbaren Code konvertieren.
var func1 = neue Funktion(functionCode);
var func2 = eval(functionCode);
33. Vermeiden Sie die Verwendung von with()
Die Verwendung von with() kann Variablen zum globalen Bereich hinzufügen. Wenn daher andere Variablen mit demselben Namen vorhanden sind, kann es leicht zu Verwechslungen kommen und der Wert wird überschrieben.
34. Nicht for-in für Arrays verwenden
Vermeiden Sie:
var sum = 0;
for (var i in arrayNumbers) {
sum = arrayNumbers[i]; }
for (var i = 0, len = arrayNumbers.length; i < len; i ) {
sum = arrayNumbers[i]; }
Ein weiterer Vorteil besteht darin, dass sich die beiden Variablen i und len in der ersten Anweisung der for-Schleife befinden und nur einmal initialisiert werden, was schneller ist als die folgende Schreibweise:
Wenn Sie eine Zeichenfolge an setTimeout() und setInterval() übergeben, werden diese auf ähnliche Weise wie bei eval konvertiert, was definitiv langsamer ist. Verwenden Sie daher nicht:
Verwenden Sie stattdessen:
Bei der Beurteilung, dass mehr als zwei Zweige vorhanden sind, ist die Verwendung von switch/case schneller, eleganter und der Codeorganisation förderlicher. Wenn mehr als 10 Zweige vorhanden sind, verwenden Sie natürlich keinen switch/case.
37. Verwenden Sie Zahlenintervalle in Schalter/Groß-/Kleinschreibung
Tatsächlich kann die Fallbedingung in switch/case auch so geschrieben werden:
Funktion getCategory(age) {
var Category = „“; switch (true) {
case isNaN(age):
Kategorie = „kein Alter“
Pause;
Fall (Alter >= 50):
Kategorie = „Alt“
Pause;
Fall (Alter <= 20):
Kategorie = „Baby“
Pause;
Standard: Kategorie = „Jung“; Pause;
};
Rückgabekategorie;
}
getCategory(5); // gibt „Baby“ zurück
38. Verwenden Sie Objekte als Prototypen von Objekten
Auf diese Weise können Sie ein Objekt als Parameter angeben, um ein neues Objekt basierend auf diesem Prototyp zu erstellen:
clone(Array).prototype; // []
39. HTML-Feldkonvertierungsfunktion
Code kopieren
40. Verwenden Sie try-catch-finally nicht innerhalb einer Schleife
Der Catch-Teil von try-catch-finally weist die Ausnahme während der Ausführung einer Variablen zu, und diese Variable wird im Laufzeitbereich in eine neue Variable umgewandelt.
Nicht: Code kopieren
}
}
Stattdessen:
Code kopieren
Der Code lautet wie folgt: fangen (e) {
}
41. Achten Sie bei der Verwendung von XMLHttpRequests auf die Einstellung des Timeouts
Wenn XMLHttpRequests ausgeführt wird und längere Zeit keine Antwort erfolgt (z. B. Netzwerkprobleme usw.), sollte die Verbindung beendet werden. Diese Arbeit kann über setTimeout() abgeschlossen werden:
Code kopieren
Der Code lautet wie folgt:
var xhr = new XMLHttpRequest (); xhr.onreadystatechange = function () {
If (this.readyState == 4) {
,,,,,,,,,,,,,,,,,,,,,,,,,,,, // etwas mit Antwortdaten machen
}
}
var timeout = setTimeout( function () {
xhr.abort(); // Fehlerrückruf aufrufen
}, 60*1000 /* Timeout nach einer Minute */ ); xhr.open('GET', url, true);
xhr.send();
Gleichzeitig ist zu beachten, dass nicht mehrere XMLHttpRequests-Anfragen gleichzeitig initiiert werden.
42. Umgang mit WebSocket-Timeout
Normalerweise unterbricht der Server die Verbindung, nachdem eine WebSocket-Verbindung erstellt wurde und innerhalb von 30 Sekunden keine Aktivität stattfindet. Die Firewall kann die Verbindung auch abbrechen, wenn innerhalb des Einheitenzeitraums keine Aktivität erfolgt.
Um dies zu verhindern, können Sie in bestimmten Abständen eine leere Nachricht an den Server senden. Diese Anforderung kann durch die folgenden zwei Funktionen erreicht werden: Eine dient dazu, die Verbindung aktiv zu halten, und die andere dient speziell dazu, diesen Zustand zu beenden.
If (webSocket.readyState == webSocket.OPEN) {
webSocket.send('');
}
timerId = setTimeout(keepAlive, timeout); }
Funktion cancelKeepAlive() {
If (timerId) {
cancelTimeout(timerId); }
}
Die Funktion keepAlive() kann am Ende der Methode onOpen() der WebSocket-Verbindung platziert werden, und cancelKeepAlive() wird am Ende der Methode onClose() platziert.
43. Bitte beachten Sie, dass primitive Operatoren schneller sind als Funktionsaufrufe. Verwenden Sie VanillaJS
Tun Sie beispielsweise Folgendes im Allgemeinen nicht:
Code kopieren
Sie können Tools wie JSLint oder JSMin verwenden, um Ihren Code zu überprüfen und zu minimieren.

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

So entfernen Sie doppelte Werte mithilfe regulärer Ausdrücke aus einem PHP-Array: Verwenden Sie den regulären Ausdruck /(.*)(.+)/i, um Duplikate abzugleichen und zu ersetzen. Durchlaufen Sie die Array-Elemente und prüfen Sie mit preg_match, ob Übereinstimmungen vorliegen. Wenn es eine Übereinstimmung gibt, überspringen Sie den Wert; andernfalls fügen Sie ihn einem neuen Array ohne doppelte Werte hinzu.

1. Mithilfe der Programmierung können verschiedene Software- und Anwendungsprogramme entwickelt werden, darunter Websites, mobile Anwendungen, Spiele und Datenanalysetools. Seine Anwendungsbereiche sind sehr breit gefächert und decken nahezu alle Branchen ab, darunter wissenschaftliche Forschung, Gesundheitswesen, Finanzen, Bildung, Unterhaltung usw. 2. Das Erlernen des Programmierens kann uns helfen, unsere Fähigkeiten zur Problemlösung und unser logisches Denkvermögen zu verbessern. Beim Programmieren müssen wir Probleme analysieren und verstehen, Lösungen finden und diese in Code übersetzen. Diese Denkweise kann unsere analytischen und abstrakten Fähigkeiten fördern und unsere Fähigkeit verbessern, praktische Probleme zu lösen.

Seien Sie vorsichtig, wenn Sie C++-Lambda-Ausdrücke verwenden: Erfassen Sie Variablen sorgfältig, um versehentliche Änderungen zu vermeiden. Variablen können durch Referenz oder Wert erfasst werden, und die Referenzerfassung wird zum Ändern externer Variablen verwendet. Ein Lambda-Ausdruck hat einen anderen Lebenszyklus als die Funktion, die ihn erfasst, was möglicherweise zu Speicherverlusten führt. Erwägen Sie die Verwendung von Funktionszeigern oder Funktionsobjekten, um die Leistung zu optimieren.

Python ist aufgrund seiner einfachen Erlernbarkeit und leistungsstarken Funktionen eine ideale Einführungssprache in die Programmierung für Anfänger. Zu seinen Grundlagen gehören: Variablen: werden zum Speichern von Daten (Zahlen, Zeichenfolgen, Listen usw.) verwendet. Datentyp: Definiert den Datentyp in der Variablen (Ganzzahl, Gleitkomma usw.). Operatoren: werden für mathematische Operationen und Vergleiche verwendet. Kontrollfluss: Kontrollieren Sie den Fluss der Codeausführung (bedingte Anweisungen, Schleifen).

Python unterstützt Anfänger bei der Problemlösung. Seine benutzerfreundliche Syntax, umfangreiche Bibliothek und Funktionen wie Variablen, bedingte Anweisungen und Schleifen ermöglichen eine effiziente Codeentwicklung. Von der Datenverwaltung über die Steuerung des Programmablaufs bis hin zur Ausführung wiederkehrender Aufgaben bietet Python

Java leicht gemacht: Ein Leitfaden für Anfänger zur leistungsstarken Programmierung Java ist eine leistungsstarke Programmiersprache, die in allen Bereichen von mobilen Anwendungen bis hin zu Systemen auf Unternehmensebene verwendet wird. Für Anfänger ist die Syntax von Java einfach und leicht zu verstehen, was es zu einer idealen Wahl zum Erlernen des Programmierens macht. Grundlegende Syntax Java verwendet ein klassenbasiertes objektorientiertes Programmierparadigma. Klassen sind Vorlagen, die zusammengehörige Daten und Verhaltensweisen organisieren. Hier ist ein einfaches Java-Klassenbeispiel: publicclassPerson{privateStringname;privateintage;

Java ist eine beliebte Programmiersprache, die sowohl von Anfängern als auch von erfahrenen Entwicklern erlernt werden kann. Dieses Tutorial beginnt mit grundlegenden Konzepten und geht dann weiter zu fortgeschrittenen Themen. Nach der Installation des Java Development Kit können Sie das Programmieren üben, indem Sie ein einfaches „Hello, World!“-Programm erstellen. Nachdem Sie den Code verstanden haben, verwenden Sie die Eingabeaufforderung, um das Programm zu kompilieren und auszuführen. Auf der Konsole wird „Hello, World!“ ausgegeben. Mit dem Erlernen von Java beginnt Ihre Programmierreise, und wenn Sie Ihre Kenntnisse vertiefen, können Sie komplexere Anwendungen erstellen.

Sind Sie es leid, Ranglistenspiele zu spielen? Dann komm und spiel Ball! Teamkollegen, die stillschweigend kooperieren, können den Gegnern eine Überraschung bereiten! Versuchen Sie auf dem sich ständig verändernden Schlachtfeld herauszufinden, wie Sie Ihre Fähigkeiten einsetzen können, um die Situation mit einem Zug zu durchbrechen! „Eternal Tribulation“ hat im Update vom 11. April einen neuen Team-Konfrontationsmodus eingeführt. Im Folgenden finden Sie eine Einführung in die heißblütige Kampfballaktivität „Eternal Tribulation“. Überblick darüber, wie man den immerwährenden, heißblütigen Kampfball spielt: Verwenden Sie verschiedene Mittel, um den Kampfball abprallen zu lassen und den Feind zu besiegen. Anzahl der Personen: 9 Personen in einer Reihe, 6 Personen in drei Reihen. Spielablauf: 1. Das Spiel ist in mehrere Runden unterteilt. Zu Beginn jeder Runde wird Douqiu in der Mitte des Feldes geboren Wählen Sie zufällig einen Spieler aus, den Sie verfolgen möchten. Der Ball beschleunigt den Kampfball, und wenn Sie vom Kampfball getroffen werden, wird Ihre Ausdauer beeinträchtigt. 2. Jede Person in der einzelnen Reihe hat in jeder Runde einen Punkt Körperkraft, und jede Person in den drei Reihen hat in jeder Runde einen Punkt Körperkraft.
