Neunundvierzig JavaScript-Tipps und Tricks

Neunundvierzig JavaScript-Tipps und Tricks

Vorwort:

Bisher habe ich in meinem Blog einige Artikel über JS und javascript geschrieben. Vor kurzem habe ich einen ausländischen Blog gelesen, in dem einige praktische JS-Kenntnisse zusammengefasst waren. Ursprünglich wollte ich ihn direkt übersetzen und in meinem Blog veröffentlichen, aber nachdem ich online nachgeschaut hatte, schien es, als hätten einige Internetnutzer ihn bereits übersetzt, sodass ich hier keine weitere umständliche Arbeit leisten werde. Auf dieser Grundlage werde ich einige der zuvor gesehenen JS-Kenntnisse integrieren und in meinem Blog zusammenfassen. Ich habe die häufig verwendeten Codes von jQuery zuvor zusammengefasst, Sie können einen Blick darauf werfen.

1. Betrieb von js Integer

Durch die Verwendung von |0 und ~~ können Gleitkommazahlen in Ganzzahlen umgewandelt werden. Die Effizienz ist höher als bei ähnlichen parseInt- und Math.round-Methoden. Dies ist sehr nützlich bei der Verarbeitung von Pixel- und Animationsverschiebungseffekten. Einen Leistungsvergleich finden Sie hier.

var foo = (12,4 / 4,13) | 0; // das Ergebnis ist 3
var bar = ~~(12.4 / 4.13); //Das Ergebnis ist 3


Es gibt nämlich noch einen anderen kleinen Trick! ! Mit zwei Ausrufezeichen lässt sich ein Wert schnell in einen Booleschen Wert umwandeln. Testen Sie es!

var eee="eee";
Alarm(!!eee)


Zurückgegeben wird „true“, d. h. jedem Wert ist ein ! vorangestellt. ! können alle gleich wahr sein. Sofern der Wert nicht ursprünglich ein Boolescher Wert ist oder „undefiniert, null, 0, falsch, NaN“, da undefined , null , 0 , false , NaN “, ursprünglich falsch sind, werden zwei hinzugefügt! ! Danach ist es immer noch falsch.

2. Schreiben Sie den nativen Alarm neu und notieren Sie die Anzahl der Popup-Fenster

(Funktion() {
    var alterAlarm = Fenster.Alarm,
        Anzahl = 0;
    Fenster.Alarm = Funktion(a) {
        zählen++;
        oldAlert(a + "\n Du hast Alert jetzt " + count + " Mal aufgerufen. Hör auf, es ist böse!");
    };
})();
alert("Hallo Haorooms");

3. Methode des digitalen Austauschs ohne Deklaration von Zwischenvariablen

Um zwei Zahlen zu vertauschen, besteht unser allgemeiner Ansatz darin, eine Zwischenvariable zu deklarieren, aber der heutige Ansatz ist etwas seltsam. Wir müssen keine Zwischenvariable deklarieren. Sehen wir uns an, wie es implementiert wird!

var a=1,b=2;a=[b,b=a][0];
Konsole.log('a:'+a+',b:'+b);

 //Ausgabe a:2,b:1


Wie wäre es mit dieser Methode? Gibt sie Ihnen nicht ein erfrischendes Gefühl?

4. Alles ist ein Objekt

In der JavaScript Welt ist alles ein Objekt. Mit Ausnahme von null und undefined verfügen andere Basistypen wie Zahlen, Zeichenfolgen und Boolesche Werte über entsprechende Verpackungsobjekte. Eine der Eigenschaften eines Objekts besteht darin, dass Sie Methoden direkt darauf aufrufen können.

Wenn Sie versuchen, toString -Methode für die grundlegenden numerischen Typen aufzurufen, schlägt dies fehl. Wenn Sie die Methode jedoch in Klammern einschließen, schlägt dies nicht fehl. Die interne Implementierung besteht darin, den grundlegenden Typ mithilfe des entsprechenden Wrapper-Objekts in ein Objekt umzuwandeln. Daher ist (1).toString() gleichbedeutend mit new Number(1).toString()。 Daher können Sie grundlegende Typen wie Zahlen, Zeichenfolgen, Boolesche Werte usw. tatsächlich als Objekte verwenden. Achten Sie lediglich auf die richtige Syntax.

Gleichzeitig haben wir festgestellt, dass Zahlen in JavaScript nicht in Gleitkomma- und Ganzzahltypen unterteilt sind. Tatsächlich sind alle Zahlen Gleitkommatypen, aber der Dezimalpunkt wird weggelassen. Beispielsweise kann die 1, die Sie sehen, als 1. geschrieben werden, weshalb ein Fehler auftritt, wenn Sie 1.toString() versuchen. Die korrekte Schreibweise sollte folgendermaßen lauten: 1..toString(), oder Sie fügen Klammern hinzu, wie oben beschrieben. Der Zweck der Klammern besteht hier darin, den JS-Parser zu korrigieren, damit er den Punkt nach 1 nicht als Dezimalpunkt behandelt. Die interne Implementierung erfolgt wie oben beschrieben, d. h. 1. das Wrapper-Objekt in ein Objekt umwandeln und dann die Methode aufrufen.

5. Variationen von If-Anweisungen

Wenn Sie eine if-Anweisung schreiben müssen, möchten Sie vielleicht einen einfacheren Ansatz ausprobieren und stattdessen logische Operatoren in JavaScript verwenden.

Beispielsweise ruft der obige Code zuerst das heutige Datum ab. Wenn es Sonntag ist, wird ein Popup-Fenster angezeigt, andernfalls wird nichts unternommen. Wir wissen, dass logische Operationen kurzgeschlossen werden können. Bei einem logischen UND-Ausdruck ist das Ergebnis nur dann wahr, wenn beide wahr sind. Wenn die Variable des vorherigen Tages als falsch beurteilt wird, ist das Ergebnis des gesamten UND-Ausdrucks falsch, sodass die nachfolgende Warnung nicht ausgeführt wird. Wenn der vorherige Tag wahr ist, muss der nachfolgende Code weiter ausgeführt werden, um die Wahrheit oder Falschheit des gesamten Ausdrucks zu bestimmen. Dies wird verwendet, um den Effekt von „if“ zu erzielen.

Bei herkömmlichen if-Anweisungen sind geschweifte Klammern erforderlich, wenn der Ausführungstext mehr als eine Anweisung umfasst. Mit Kommaausdrücken kann jedoch jeder Code ohne geschweifte Klammern ausgeführt werden.

wenn(Bedingung) Alarm(1),Alarm(2),Console.log(3);

6. Verwenden Sie === statt ==

Der Operator == (oder !=) führt bei Bedarf automatisch Typkonvertierungen durch. Die Operation === (oder !==) führt keine Konvertierung durch. Es vergleicht sowohl Wert als auch Typ und gilt auch als schneller als ==.

[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 falsch

7. Verwenden von Closures zur Implementierung privater Variablen

Funktion Person(Name, Alter) {
    this.getName = Funktion() { Rückgabename; };
    this.setName = Funktion(neuerName) { Name = neuerName; };
    this.getAge = Funktion() { return Alter; };
    this.setAge = Funktion(neuesAlter) { Alter = neuesAlter; };

    //Eigenschaften im Konstruktor nicht initialisiert var occupy;
    this.getOccupation = Funktion() { Rückkehr Beruf; };
    this.setOccupation = Funktion(neueBerufsbezeichnung) { Beruf = 
                         neueBelegung; };
}

8. Erstellen Sie einen Objektkonstruktor

Funktion Person(Vorname, Nachname){
    this.firstName = Vorname;
    this.lastName = Nachname;
}

var Saad = neue Person("Saad", "Mousliki");

9. Seien Sie vorsichtig mit typeof, instanceof und Konstruktor

var arr = ["a", "b", "c"];
typeof arr; // gibt "Objekt" zurück
arr Instanz von Array // wahr
arr.konstruktor(); //[]

10. Erstellen Sie eine selbstaufrufende Funktion

Dies wird oft Self-Invoked Anonymous Function oder IIFE-Immediately Invoked Function Expression ) bezeichnet. Dies ist eine Funktion, die unmittelbar nach ihrer Erstellung automatisch ausgeführt wird.

Normalerweise ist es wie folgt:

(Funktion(){
    // privater Code, der automatisch ausgeführt wird
})();
(Funktion(a,b){
    var Ergebnis = a+b;
    Ergebnis zurückgeben;
})(10,20)

11. Holen Sie sich ein zufälliges Element aus einem Array

var items = [12, 548, 'a', 2, 5478, 'foo', 8852, 'Doe', 2145, 119];

var randomItem = items[Math.floor(Math.random() * items.length)];

12. Holen Sie sich eine Zufallszahl innerhalb eines bestimmten Bereichs

Dieser Codeausschnitt ist nützlich, wenn Sie Testdaten generieren möchten, beispielsweise einen zufälligen Gehaltswert zwischen einem Minimal- und einem Maximalwert.

var x = Math.floor(Math.random() * (max - min + 1)) + min;

13. Erzeugen Sie ein digitales Array zwischen 0 und dem eingestellten Maximalwert

var numbersArray = [], max = 100;

für (var i = 1; ZahlenArray.push(i++) < max;); // Zahlen = [0,1,2,3 ... 100]

14. Generieren Sie eine zufällige Zeichenfolge alphanumerischer Zeichen

Funktion generateRandomAlphaNum(len) {
    var rdmstring = "";
    für( ; rdmString.length < len; rdmString += Math.random().toString(36).substr(2));
    return rdmString.substr(0, Länge);
}

//Methode generateRandomAlphaNum(15) aufrufen;

15. Mischen Sie eine Zahlenreihe

var Zahlen = [5, 458, 120, -215, 228, 400, 122205, -85411];
Zahlen = Zahlen.Sortieren(Funktion(){ return Math.random() - 0,5});
/* die Array-Nummern sind beispielsweise gleich [120, 5, 228, -215, 400, 458, -85411, 122205] */

16. String-Trimmfunktion

String.prototype.trim = Funktion () {return this.replace(/^\s+|\s+$/g, "");};

17. Ein Array an ein anderes Array anhängen

var array1 = [12, "foo", {name: "Joe"}, -2458];

var array2 = ["Damm", 555, 100];
Array.prototype.push.apply(array1, array2);
/* Array1 ist gleich [12, "foo", {name "Joe"}, -2458, "Doe", 555, 100] */

18. Konvertieren Sie das Argumentobjekt in ein Array

var argArray = Array.prototype.slice.call(arguments);


[Anmerkung des Übersetzers: Das Argumentobjekt ist ein arrayähnliches Objekt, aber kein echtes Array]

19. Überprüfen Sie, ob der Parameter eine Zahl ist

Funktion istZahl(n){
return !isNaN(parseFloat(n)) und isFinite(n);
}

20. Überprüfen Sie, ob der Parameter ein Array ist

Funktion istArray(Objekt){
    gibt Object.prototype.toString.call(obj) === '[Objekt-Array]' zurück;
}


Hinweis: Wenn die Methode toString() überschrieben wird, erhalten Sie mit dieser Technik möglicherweise nicht die gewünschten Ergebnisse. Oder Sie können Folgendes verwenden:

Array.isArray(obj); // Dies ist eine neue Array-Methode

Wenn Sie nicht mehrere frames verwenden, können Sie auch die Methode instanceof verwenden. Wenn Sie jedoch mehrere Kontexte haben, erhalten Sie falsche Ergebnisse.

var meinFrame = document.createElement('iframe');
document.body.appendChild(meinFrame);

var meinArray = Fenster.Frames[Fenster.Frames.Länge-1].Array;
var arr = neues meinArray(a,b,10); // [a,b,10]

// instanceof funktioniert nicht richtig, myArray verliert seinen Konstruktor
// Der Konstruktor wird nicht zwischen Frames geteilt
arr Instanz von Array; // falsch


[Anmerkung des Übersetzers: Im Internet gibt es viele Diskussionen darüber, wie man Arrays beurteilt. Sie können danach googeln. Dieser Artikel ist sehr ausführlich geschrieben. 】

21. Holen Sie sich den maximalen oder minimalen Wert in einem numerischen 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);


[Anmerkung des Übersetzers: Zur Parameterübergabe wird hier die Methode Function.prototype.apply verwendet]

22. Löschen Sie ein Array

var meinArray = [12, 222, 1000];
myArray.length = 0; // myArray ist gleich [].

23. Verwenden Sie „delete“ nicht, um Elemente in einem Array zu löschen.

Verwenden Sie splice statt „löschen“, um ein Element aus einem Array zu entfernen. Die Verwendung von „delete“ ersetzt lediglich das ursprüngliche Element durch undefined , löscht es aber nicht tatsächlich aus dem Array.

Verwenden Sie diesen Ansatz nicht:

var Elemente = [12, 548, 'a', 2, 5478, 'foo', 8852, 'Doe', 2154, 119];
Elemente.Länge; // return 11
Elemente löschen[3]; // gibt true zurück
Elemente.Länge; // return 11
/* Elemente sind gleich [12, 548, „a“, undefiniert × 1, 5478, „foo“, 8852, undefiniert × 1, „Doe“, 2154, 119] */


Und verwenden Sie:

var Elemente = [12, 548, 'a', 2, 5478, 'foo', 8852, 'Doe', 2154, 119];
Elemente.Länge; // return 11
Elemente.spleißen(3,1);
items.length; // returniere 10
/* Elemente sind gleich [12, 548, "a", 5478, "foo", 8852, undefiniert × 1, "Doe", 2154, 119] */

Die delete sollte zum Löschen einer Eigenschaft eines Objekts verwendet werden.

24. Verwenden Sie die Länge, um ein Array zu kürzen

Ähnlich wie wir oben ein Array gelöscht haben, verwenden wir length , um ein Array zu kürzen.

var meinArray = [12, 222, 1000, 124, 98, 10];
myArray.length = 4; // myArray ist gleich [12, 222, 1000, 124].


Wenn Sie außerdem length eines Arrays auf einen größeren Wert als den aktuellen Wert festlegen, wird die Länge des Arrays geändert und es werden neue undefinierte Elemente hinzugefügt, um dies auszugleichen. length eines Arrays ist keine schreibgeschützte Eigenschaft.

myArray.length = 10; // die neue Arraylänge beträgt 10
meinArray[meinArray.length - 1]; // undefiniert

25. Verwenden Sie logisches UND/ODER, um bedingte Urteile zu treffen

Dasselbe wie (V), wenn Transformationsanweisung!

var foo = 10;
foo == 10 && doSomething(); // entspricht if (foo == 10) doSomething();
foo == 5 || doSomething(); // entspricht if (foo != 5) doSomething();


Das logische UND kann auch verwendet werden, um Standardwerte für Funktionsparameter festzulegen.

Funktion tuEtwas(arg1){
    Arg1 = arg1 || 10; // Wenn arg1 nicht festgelegt ist, wird Arg1 standardmäßig auf 10 gesetzt.
}

26. Verwenden Sie die Methode map(), um über die Elemente in einem Array zu iterieren

var Quadrate = [1,2,3,4].map(Funktion (Wert) {
    gibt Wert *Wert zurück;
});
// Quadrate sind gleich [1, 4, 9, 16]

27. Eine Zahl auf N Dezimalstellen runden

Varnum =2,443242342;
num = num.toFixed(4); // num ist gleich 2,4432

28. Gleitkommaproblem

0,1 + 0,2 === 0,3 // ist falsch
9007199254740992 + 1 // ist gleich 9007199254740992
9007199254740992 + 2 // ist gleich 9007199254740994

Warum passiert das? 0,1 + 0,2 ergibt 0,30000000000000004. Sie sollten wissen, dass alle JavaScript-Zahlen intern als 64-Bit-Binär-Gleitkommazahlen dargestellt werden, die dem IEEE-754-Standard entsprechen. Weitere Informationen finden Sie in diesem Blogbeitrag. Sie können dieses Problem mit den Methoden toFixed() und toPrecision() lösen.

29. Achten Sie beim Durchlaufen der internen Eigenschaften eines Objekts mit for-in darauf, die Eigenschaften zu überprüfen

Der folgende Codeausschnitt vermeidet den Zugriff auf Prototypeigenschaften beim Iterieren über die Eigenschaften eines Objekts:

für (Var-Name im Objekt) {
    wenn (Objekt.hatEigeneEigenschaft(Name)) {
        // mach was mit dem Namen
    }
}

30. Komma-Operator

var a = 0;
var b = ( a++, 99 );
console.log(a); // a ist gleich 1
console.log(b); // b ist gleich 99

31. Cache-Variablen, die eine Berechnung oder Abfrage erfordern

Für jQuery Selektoren sollten wir diese DOM-Elemente besser zwischenspeichern.

var navright = document.querySelector('#right');
var navleft = document.querySelector('#left');
var navup = document.querySelector('#up');
var navdown = document.querySelector('#down');

32. Überprüfen Sie die Parameter, bevor Sie isFinite() aufrufen

istFinite(0/0); // falsch
isFinite("foo"); // falsch
isFinite("10"); // wahr
istFinite(10); // wahr
isFinite(undifiniert); // falsch
isFinite(); // falsch
istFinite(null); // wahr !!!

33. Vermeiden Sie negative Indizes in Arrays

var ZahlenArray = [1,2,3,4,5];
var from = numbersArray.indexOf("foo") ; // from ist gleich -1
numbersArray.splice(from,2); // gibt [5] zurück

Stellen Sie sicher, dass das Argument beim Aufruf indexOf keine negative Zahl ist.

34. JSON-basierte Serialisierung und Deserialisierung

(serialization and deserialization)

var person = {Name: ‚Saad‘, Alter: 26, Abteilung: {ID: 15, Name: „R&D“} };
var stringFromPerson = JSON.stringify(person);
/* stringFromPerson ist gleich "{"name":"Saad","age":26,"department":{"ID":15,"name":"R&D"}}" */
var personFromString = JSON.parse(stringFromPerson);
/* personFromString ist gleich dem Personenobjekt */

35. Vermeiden Sie die Verwendung von eval() und Funktionskonstruktoren

Die Verwendung von eval und Function sind sehr aufwändige Vorgänge, da bei jedem Aufruf die Skript-Engine den Quellcode in ausführbaren Code konvertiert.

var func1 = neue Funktion (Funktionscode);
var func2 = eval(Funktionscode);


36. Vermeiden Sie die Verwendung von with()

Die Verwendung von with() fügt eine globale Variable ein. Daher werden die Werte von Variablen mit demselben Namen überschrieben, was unnötige Probleme verursacht.

37. Vermeiden Sie die Verwendung von for-in zum Durchlaufen eines Arrays

Vermeiden Sie diesen Ansatz:

var Summe = 0;
für (var i in arrayNumbers) {
    Summe += ArrayNumbers[i];
}

Besser ist:

var Summe = 0;
für (var i = 0, len = arrayNumbers.length; i < len; i++) {
    Summe += ArrayNumbers[i];
}

Der zusätzliche Vorteil besteht darin, dass die Werte von i und len nur einmal ausgewertet werden.

Ist effizienter als:

für (var i = 0; i < arrayNumbers.length; i++)

Warum? Weil arrayNumbers.length bei jedem Durchlauf der Schleife berechnet wird.

38. Übergeben Sie beim Aufruf von setTimeout() und setInterval() eine Funktion statt einer Zeichenfolge.

Wenn Sie einen String an setTimeout() oder setInterval() übergeben, wird der String wie mit eval analysiert, was sehr zeitaufwändig ist.

Nicht verwenden:

setInterval('macheSomethingPeriodically()', 1000);
setTimeOut('macheSomethingAfterFiveSeconds()', 5000)


Und verwenden Sie:

setzeInterval(machePeriodischEtwas, 1000);
setzeTimeOut(macheEtwasNachFünfSekunden, 5000);

39. Verwenden Sie Switch/Case-Anweisungen anstelle langer If/Else-Sequenzen

Wenn mehr als zwei Situationen zu beurteilen sind, ist die Verwendung switch / case effizienter und eleganter (der Code lässt sich leichter organisieren). Verwenden Sie Switch/Case jedoch nicht, wenn mehr als 10 Situationen zu beurteilen sind.

40. Verwenden Sie Switch/Case, wenn Sie den Wertebereich beurteilen

In folgender Situation ist die Verwendung switch / case zur Festlegung des Wertebereichs sinnvoll:

Funktion getCategory(Alter) {
    var Kategorie = "";
    Schalter (wahr) {
        Fall ist NaN (Alter):
            Kategorie = "kein Alter";
            brechen;
        Fall (Alter >= 50):
            Kategorie = "Alt";
            brechen;
        Fall (Alter <= 20):
            Kategorie = "Baby";
            brechen;
        Standard:
            Kategorie = "Jung";
            brechen;
    };
    Rückgabekategorie;
}
getCategory(5); // gibt "Baby" zurück

[Anmerkung des Übersetzers: Generell ist es sinnvoller, if/else zu verwenden, um den Wertebereich zu beurteilen. Zur Wertermittlung eignet sich Switch/Case besser.

41. Geben Sie das Prototypobjekt für das erstellte Objekt an

Es ist möglich, eine Funktion zu schreiben, die ein Objekt mit den angegebenen Parametern als Prototyp erstellt:

Funktion Klon(Objekt) {
    Funktion OneShotConstructor(){};
    OneShotConstructor.prototype = Objekt;
    gibt einen neuen OneShotConstructor() zurück;
}
Klon(Array).Prototyp ; // []
42. Eine HTML-Escape-Funktion function escapeHTML(text) {
    var Ersetzungen = {"<": "<", ">": ">","&": "&", "\"": """};
    return text.replace(/[<>&"]/g, Funktion(Zeichen) {
        Ersatz zurückgeben [Zeichen];
    });
}

43. Vermeiden Sie die Verwendung von try-catch-finally in Schleifen

Zur Laufzeit wird bei jeder Ausführung catch Klausel das abgefangene Ausnahmeobjekt einer Variablen zugewiesen, und in try-catch-finally -Struktur wird diese Variable jedes Mal erstellt.

Vermeiden Sie das Schreiben von:

var Objekt = ['foo', 'bar'], i;
für (i = 0, Länge = Objektlänge; i < Länge; i++) {
    versuchen {
        // etwas tun, das eine Ausnahme auslöst
    }
    fangen (e) {
        // Ausnahme behandeln
    }
}

Und verwenden Sie:

var Objekt = ['foo', 'bar'], i;
versuchen {
    für (i = 0, Länge = Objektlänge; i < Länge; i++) {
        // etwas tun, das eine Ausnahme auslöst
    }
}
fangen (e) {
    // Ausnahme behandeln
}

44. Legen Sie ein Timeout für XMLHttpRequests fest.

Wenn eine XHR-Anforderung lange dauert (beispielsweise aufgrund von Netzwerkproblemen), müssen Sie die Anforderung möglicherweise abbrechen. In diesem Fall können Sie setTimeout() mit XHR Aufruf verwenden.

var xhr = neue XMLHttpRequest();
xhr.onreadystatechange = Funktion () {
    wenn (this.readyState == 4) {
        Zeitüberschreitung löschen (Zeitüberschreitung);
        // etwas mit den Antwortdaten tun
    }
}
var timeout = setTimeout( Funktion () {
    xhr.abort(); // Fehler-Callback aufrufen
}, 60*1000 /* Timeout nach einer Minute */ );
xhr.open('GET', URL, wahr);  

xhr.senden();

Außerdem sollten Sie synchrone Ajax-Anfragen grundsätzlich vollständig vermeiden.

45. Umgang mit WebSocket-Timeouts

Normalerweise time out der Server nach dem Herstellen einer WebSocket Verbindung Ihre Verbindung nach 30 Sekunden, wenn keine Aktivität stattfindet. Die Firewall trennt die Verbindung auch nach einer Zeit der Inaktivität.

Um Timeout-Probleme zu vermeiden, möchten Sie möglicherweise zeitweise leere Nachrichten an den Server senden. Dazu können Sie Ihrem Code die folgenden beiden Funktionen hinzufügen: eine zum Aufrechterhalten der Verbindung und eine andere zum Abbrechen der Verbindung. Mit dieser Technik können Sie das Timeout-Problem in den Griff bekommen.

Verwenden Sie eine Timer-ID:

var TimerID = 0;
Funktion keepAlive() {
    var Zeitüberschreitung = 15000;
    wenn (webSocket.readyState == webSocket.OPEN) {
        webSocket.send('');
    }
    timerId = setTimeout(keepAlive, Zeitüberschreitung);
}
Funktion cancelKeepAlive() {
    wenn (Timer-ID) {
        Zeitüberschreitung abbrechen(Timer-ID);
    }
}


keepAlive() sollte am Ende onOpen() webSOcket Verbindung hinzugefügt werden und cancelKeepAlive() sollte am Ende onClose() hinzugefügt werden.

46. ​​​​Primitive Operatoren sind immer effizienter als Funktionsaufrufe.

Verwenden Sie VanillaJS .

Verwenden Sie beispielsweise nicht:

var min = Math.min(a,b);
A. drücken(v);


Und verwenden Sie:

var min = a < b ? ab;
A[A.Länge] = v;

47. Wählen Sie zufällig einen Wert aus der Ganzzahl

Es gibt eine sehr nützliche Formel, die es uns ermöglicht, bestimmte berühmte Zitate oder Nachrichtenereignisse zufällig anzuzeigen!

Wert =Math.floor(Math.random()* Gesamtzahl der möglichen Werte + erster möglicher Wert)
Um beispielsweise einen Wert zwischen 2 und 10 auszuwählen, können wir schreiben

var num=Math.floor(Math.random()*9+2)

Bitte merken Sie sich die obige Formel! ~

48. Nach der Zeitformatierung fehlen den führenden Ziffern Nullen

Es gibt viele Möglichkeiten, damit umzugehen, aber die folgende Methode ist einfacher und effektiver, also notieren Sie sie!

Funktion paddingLeftZero(str){
    return ("00"+str).substr(str.länge);
}

49. js setzt Cookies

getCookie: Funktion (Name) {
    var arr, reg = neuer RegExp("(^| )" + name + "=([^;]*)(;|$)");

    wenn (arr = document.cookie.match(reg))
        Rückgabewert: unescape(arr[2]);
    anders
        gibt null zurück;
},
setCookie: Funktion (Name, Wert, Tage) {
    var exp = neues Datum();
    exp.setTime(exp.getTime() + Tage * 24 * 60 * 60 * 1000);
    document.cookie = Name + "=" + escape(Wert) + ";expires=" + exp.toGMTString();
},

49. js ermittelt die Uhrzeit an diesem Tag um 24 Uhr

neues Datum(neues Datum(neues Datum().toLocaleDateString()).getTime()+24*60*60*1000);


Ebenso 0 Uhr Zeit

neues Datum(neues Datum(neues Datum().toLocaleDateString()).getTime());

Damit ist der Artikel mit 49 praktischen Tipps zu JavaScript abgeschlossen. Weitere relevante Inhalte zu praktischen JavaScript-Tipps finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Teilen Sie 5 Tipps zum Schreiben von JavaScript
  • Allgemeine Kenntnisse zu Array-Operationen in JavaScript (Teil 2)
  • Allgemeine Array-Operationstechniken in JavaScript
  • Ein praktischer Leitfaden zur Destrukturierungszuweisung in JavaScript
  • Einführung und Tipps zur Verwendung der interaktiven Visualisierungs-JS-Bibliothek gojs
  • 20 JS-Abkürzungsfähigkeiten zur Verbesserung der Arbeitseffizienz
  • 3 Tipps, die Sie beim Erlernen von JavaScript kennen müssen
  • Teilen Sie 7 Killer-JS-Tipps

<<:  Detaillierte Methode zur Verwendung von GoAccess zum Analysieren von Nginx-Protokollen

>>:  Mit CSS3 3D-Effekten einen Würfel erstellen

Artikel empfehlen

Node.js versendet E-Mails basierend auf dem STMP-Protokoll und dem EWS-Protokoll

Inhaltsverzeichnis 1 Node.js-Methode zum Senden v...

Warum node.js nicht für große Projekte geeignet ist

Inhaltsverzeichnis Vorwort 1. Anwendungskomponent...

Details zum TypeScript-Mapping-Typ

Inhaltsverzeichnis 1. Zugeordnete Typen 2. Mappin...

Vue verwendet Filter zum Formatieren von Daten

In diesem Artikelbeispiel wird der spezifische Co...

Spezifische Verwendung von Bootstrap5-Haltepunkten und Containern

Inhaltsverzeichnis 1. Bootstrap5-Haltepunkte 1.1 ...

Detaillierte Erklärung der JS-Ereignisdelegation

1. Jede Funktion ist ein Objekt und belegt Speich...

So implementieren Sie eine MySQL-Master-Slave-Replikation basierend auf Docker

Vorwort Die MySQL Master-Slave-Replikation ist di...

VMware Workstation-Installation unter Linux

Vom Einsteiger bis zum Neueinsteiger ist das Linu...