Hat SetTimeout tatsächlich einen dritten Parameter?
setTimeout hat tatsächlich einen dritten Parameter?
Apropos setTimeout, jeder kennt es und die Verwendung ist auch sehr einfach: setTimeout(fun, delay).
Aber Sie glauben es vielleicht nicht, aber setTimeout, das seit so vielen Jahren verwendet wird, hat tatsächlich einen dritten Parameter. Werfen wir einen Blick auf den dritten Parameter von setTimeout.
[Verwandte Kursempfehlungen: JavaScript-Video-Tutorial]
Schauen wir uns zuerst einen einfachen Code an:
setTimeout(function(x) { console.log(x); }, 1000, 1);
Die Konsole gibt dann 1 aus es kann Warum kann ich keine weiteren Parameter hinzufügen? Schauen wir uns weiterhin den folgenden Code an:
setTimeout(function(x,y) { console.log(x+y); }, 1000, 1, 2);
Die Konsolenausgabe ist 3, was offensichtlich die Summe des dritten und vierten Parameters ist.
Nachdem sie das gesehen haben, sollten viele Freunde erkennen, dass der dritte Parameter von setTimeout der Parameter der ersten Funktion von setTimeout ist.
Durch die Abfrage von MDN https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout können wir die Beschreibung des dritten Parameters sehen:
var timeoutID = scope.setTimeout(function[, delay, arg1, arg2, ...]); var timeoutID = scope.setTimeout(function[, delay]); var timeoutID = scope.setTimeout(code[, delay]);
So Um genau zu sein, kann setTimeout unzählige Parameter haben, aber ab dem dritten Parameter ist es der optionale Parameter .
Okay, welche Probleme können wir lösen, nachdem wir diese Funktion kennen? Die klassischste Variante ist die Verwendung von setTimeout innerhalb einer for-Schleife.
for(var i = 0; i<6; i++) { setTimeout(function() { console.log(i); }, 1000); }
Das obige Beispiel ist eine klassische Interviewfrage. Sie wird sechsmal hintereinander ausgegeben, da setTimeout eine asynchrone Operation ist und zum Zeitpunkt der Ausführung von setTimeout die for-Schleife ausgeführt wurde und ich bereits ausgeführt wurde gleich 6, also wird 6 mal 6 ausgegeben. Interessierte Freunde können meinen letzten Blog „Über die Verwendung von setTimeout in for-Schleifen“ lesen. Schauen wir uns diesen Ansatz noch einmal an.
for(var i=0;i<6;i++) { setTimeout(function(j) { console.log(j); }, 1000, i); }
Da der jedes Mal übergebene Parameter der aus der for-Schleife entnommene Wert ist, werden nacheinander 0 bis 5 ausgegeben. Natürlich ist dies immer noch ein Bereichsproblem, aber hier speichert der dritte Parameter von setTimeout den Wert von i. Diese Lösung ist wesentlich leichter als die Verwendung von Verschlüssen.
Darüber hinaus kann der dritte Parameter auch als Funktion verwendet werden.
for(var i=0;i<6;i++) { setTimeout(function(j) { console.log(j); }, 1000, i); }
Die endgültige Ausgabe ist 0 beim ersten Mal und 1 beim zweiten Mal.
Sie sehen, dass auch zuerst der dritte Parameter und dann die Funktion ausgeführt werden kann.
Abschließend müssen Sie bei der Verwendung des dritten Parameters auf das Kompatibilitätsproblem achten. Wenn Sie mit IE9 und früheren Versionen kompatibel sein müssen, müssen Sie einen Teil des bereitgestellten kompatiblen alten IE-Codes einführen von MDN https://developer.mozilla .org/zh-CN/docs/Web/API/Window/setTimeout#%E5%85%BC%E5%AE%B9%E6%97%A7%E7% 8E%AF%E5%A2%83%EF% BC%88polyfill%EF%BC%89, das Portal ist hier gepostet, wenn Sie interessiert sind, können Sie es sich ansehen.
Das Folgende ist eine Beschreibung der Kompatibilität auf MDN:
Note: Passing additional arguments to the function in the first syntax does not work in Internet Explorer 9 and below. If you want to enable this functionality on that browser, you must use a polyfill (see the Polyfill section).
Dieser Artikel stammt aus der Spalte JS-Tutorial, willkommen zum Lernen!
Das obige ist der detaillierte Inhalt vonHat SetTimeout tatsächlich einen dritten Parameter?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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



Neue Funktion der PHP5.4-Version: So verwenden Sie aufrufbare Typhinweisparameter, um aufrufbare Funktionen oder Methoden zu akzeptieren. Einführung: Die PHP5.4-Version führt eine sehr praktische neue Funktion ein: Sie können aufrufbare Typhinweisparameter verwenden, um aufrufbare Funktionen oder Methoden zu akzeptieren. Mit dieser neuen Funktion können Funktionen und Methoden entsprechende aufrufbare Argumente ohne zusätzliche Prüfungen und Konvertierungen direkt angeben. In diesem Artikel stellen wir die Verwendung von aufrufbaren Typhinweisen vor und stellen einige Codebeispiele bereit.

Produktparameter beziehen sich auf die Bedeutung von Produktattributen. Zu den Bekleidungsparametern gehören beispielsweise Marke, Material, Modell, Größe, Stil, Stoff, anwendbare Gruppe, Farbe usw.; zu den Lebensmittelparametern gehören Marke, Gewicht, Material, Gesundheitslizenznummer, anwendbare Gruppe, Farbe usw.; Dazu gehören Marke, Größe, Farbe, Herkunftsort, anwendbare Spannung, Signal, Schnittstelle und Leistung usw.

Während des Entwicklungsprozesses kann es vorkommen, dass wir auf die folgende Fehlermeldung stoßen: PHPWarning: in_array()expectsparameter. Diese Fehlermeldung wird bei Verwendung der Funktion in_array() angezeigt. Sie kann durch eine falsche Parameterübergabe der Funktion verursacht werden. Werfen wir einen Blick auf die Lösung dieser Fehlermeldung. Zunächst müssen Sie die Rolle der Funktion in_array() klären: Überprüfen Sie, ob ein Wert im Array vorhanden ist. Der Prototyp dieser Funktion ist: in_a

Der i9-12900H ist ein 14-Kern-Prozessor und die Threads sind ebenfalls sehr hoch. Einige Parameter wurden verbessert und können den Benutzern ein hervorragendes Erlebnis bieten . Überprüfung der Parameterbewertung des i9-12900H: 1. Der i9-12900H ist ein 14-Kern-Prozessor, der die q1-Architektur und die 24576-KB-Prozesstechnologie übernimmt und auf 20 Threads aktualisiert wurde. 2. Die maximale CPU-Frequenz beträgt 1,80! 5,00 GHz, was hauptsächlich von der Arbeitslast abhängt. 3. Im Vergleich zum Preis ist es sehr gut geeignet. Das Preis-Leistungs-Verhältnis ist sehr gut und für einige Partner, die eine normale Nutzung benötigen, sehr gut geeignet. i9-12900H Parameterbewertung und Leistungsbenchmarks

Die Sicherheitsüberprüfung von C++-Parametertypen stellt durch Überprüfungen zur Kompilierungszeit, Laufzeitüberprüfungen und statischen Behauptungen sicher, dass Funktionen nur Werte erwarteter Typen akzeptieren, wodurch unerwartetes Verhalten und Programmabstürze verhindert werden: Typüberprüfung zur Kompilierungszeit: Der Compiler überprüft die Typkompatibilität. Überprüfung des Laufzeittyps: Verwenden Sie Dynamic_cast, um die Typkompatibilität zu überprüfen und eine Ausnahme auszulösen, wenn keine Übereinstimmung vorliegt. Statische Behauptung: Typbedingungen zur Kompilierzeit geltend machen.

Hyperbelfunktionen werden mithilfe von Hyperbeln anstelle von Kreisen definiert und entsprechen gewöhnlichen trigonometrischen Funktionen. Es gibt den Verhältnisparameter in der hyperbolischen Sinusfunktion aus dem angegebenen Winkel im Bogenmaß zurück. Aber machen Sie das Gegenteil, oder anders gesagt. Wenn wir einen Winkel aus einem hyperbolischen Sinus berechnen wollen, benötigen wir eine umgekehrte hyperbolische trigonometrische Operation wie die hyperbolische Umkehrsinusoperation. In diesem Kurs wird gezeigt, wie Sie die hyperbolische Umkehrsinusfunktion (asinh) in C++ verwenden, um Winkel mithilfe des hyperbolischen Sinuswerts im Bogenmaß zu berechnen. Die hyperbolische Arkussinusoperation folgt der folgenden Formel -$$\mathrm{sinh^{-1}x\:=\:In(x\:+\:\sqrt{x^2\:+\:1})}, Wo\:In\:ist\:natürlicher Logarithmus\:(log_e\:k)

Obwohl große Sprachmodelle (LLM) eine starke Leistung aufweisen, kann die Anzahl der Parameter leicht Hunderte oder Hunderte von Milliarden erreichen, und der Bedarf an Computerausrüstung und Speicher ist so groß, dass sich normale Unternehmen diese nicht leisten können. Bei der Quantisierung handelt es sich um eine gängige Komprimierungsoperation, die einen Teil der Modellleistung im Austausch für eine schnellere Inferenzgeschwindigkeit und einen geringeren Speicherbedarf opfert, indem die Genauigkeit der Modellgewichte (z. B. 32 Bit auf 8 Bit) verringert wird. Bei LLMs mit mehr als 100 Milliarden Parametern können die vorhandenen Komprimierungsmethoden jedoch weder die Genauigkeit des Modells aufrechterhalten, noch können sie effizient auf der Hardware ausgeführt werden. Kürzlich haben Forscher vom MIT und NVIDIA gemeinsam eine universelle Post-Training-Quantisierung (GPQ) vorgeschlagen.

Der Unterschied zwischen settimeout und setInterval: 1. Triggerzeit, settimeout ist einmalig, es führt die Funktion einmal aus, nachdem die Verzögerungszeit eingestellt wurde, während setinterval sich wiederholt, es wird die Funktion wiederholt im festgelegten Zeitintervall ausführen , settimeout wird nur einmal ausgeführt und setinterval wird wiederholt ausgeführt, bis es abgebrochen wird.
