Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. JavaScript-Referenz
  4. Ausdrücke und Operatoren
  5. void-Operator

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.

View in EnglishAlways switch to English

void-Operator

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨Juli 2015⁩.

Dervoid-Operator wertet den gegebenenAusdruck aus und gibt anschließendundefined zurück.

Probieren Sie es aus

const output = void 1;console.log(output);// Expected output: undefinedvoid console.log("expression evaluated");// Expected output: "expression evaluated"void (function iife() {  console.log("iife is executed");})();// Expected output: "iife is executed"void function test() {  console.log("test function executed");};try {  test();} catch (e) {  console.log("test function is not defined");  // Expected output: "test function is not defined"}

Syntax

js
void expression

Beschreibung

Dieser Operator ermöglicht es, Ausdrücke, die einen Wert produzieren, an Stellen zu verwenden, an denen ein Ausdruck gewünscht wird, der zuundefined ausgewertet wird.

Dervoid-Operator wird oft einfach dazu verwendet, den primitiven Wertundefined zu erhalten, üblicherweise mitvoid(0) (was gleichbedeutend ist mitvoid 0). In diesen Fällen kann die globale Variableundefined verwendet werden.

Es sollte beachtet werden, dass diePriorität desvoid-Operators berücksichtigt werden sollte und dass Klammern dazu beitragen können, die Auswertung des Ausdrucks nach demvoid-Operator zu verdeutlichen:

js
void 2 === "2"; // (void 2) === '2', returns falsevoid (2 === "2"); // void (2 === '2'), returns undefined

Beispiele

Sofort aufgerufene Funktionsausdrücke

Bei der Verwendung einessofort aufgerufenen Funktionsausdrucks kann dasfunction-Schlüsselwort nicht direkt am Anfang derAnweisung stehen, da dies alsFunktionsdeklaration geparst wird und zu einem Syntaxfehler führt, wenn die Klammern für den Aufruf erreicht werden – wenn die Funktion namenlos ist, würde dies sofort ein Syntaxfehler sein, wenn die Funktion als Deklaration geparst wird.

js
function iife() {  console.log("Executed!");}(); // SyntaxError: Unexpected token ')'function () {  console.log("Executed!");}(); // SyntaxError: Function statements require a function name

Damit die Funktion alsAusdruck geparst wird, muss dasfunction-Schlüsselwort an einer Position erscheinen, die nur Ausdrücke und nicht Anweisungen akzeptiert. Dies kann erreicht werden, indem das Schlüsselwort mit einemunären Operator versehen wird, der nur Ausdrücke als Operanden akzeptiert. Der Funktionsaufruf hat eine höherePriorität als unäre Operatoren, daher wird er zuerst ausgeführt. Sein Rückgabewert (der fast immerundefined ist) wird an den unären Operator übergeben und dann sofort verworfen.

Von allen unären Operatoren bietetvoid die beste Bedeutung, da es deutlich macht, dass der Rückgabewert des Funktionsaufrufs verworfen werden soll.

js
void function () {  console.log("Executed!");}();// Logs "Executed!"

Dies ist etwas länger als das Einhüllen des Funktionsausdrucks in Klammern, was den gleichen Effekt hat, nämlich dasfunction-Schlüsselwort als Beginn eines Ausdrucks statt als Anweisung zu parsen.

js
(function () {  console.log("Executed!");})();

Beachten Sie, dass dieser Trick nur auf IIFEs anwendbar ist, die mit demfunction-Schlüsselwort definiert sind. Der Versuch, denvoid-Operator zu verwenden, um Klammern bei einem Pfeilfunktionsausdruck zu vermeiden, führt zu einem Syntaxfehler. Pfeilfunktionsausdrücke erfordern immer Klammern um sie, wenn sie aufgerufen werden.

js
void () => { console.log("iife!"); }(); // SyntaxError: Malformed arrow function parameter list

JavaScript-URIs

Wenn ein Browser einem#"/de/docs/Web/JavaScript/Reference/Global_Objects/undefined">undefined. Dervoid-Operator kann verwendet werden, umundefined zurückzugeben. Zum Beispiel:

html
<a href="#">Click here to do nothing</a><a href="#">  Click here for green background</a>

Hinweis:Das#"nicht-leckende_pfeilfunktionen" >

Nicht-leckende Pfeilfunktionen

Pfeilfunktionen führen eine abgekürzte klammerlose Syntax ein, die einen Ausdruck zurückgibt. Dies kann unbeabsichtigte Nebeneffekte haben, wenn der Ausdruck ein Funktionsaufruf ist, bei dem sich der zurückgegebene Wert vonundefined zu einem anderen Wert ändert.

Wenn beispielsweisedoSomething() im untenstehenden Codefalse zurückgibt, wird das Kontrollkästchen nicht mehr als markiert oder unmarkiert angezeigt, wenn das Kontrollkästchen angeklickt wird (die Rückgabe vonfalse aus dem Handler deaktiviert die Standardaktion).

js
checkbox.onclick = () => doSomething();

Dies ist wahrscheinlich kein gewünschtes Verhalten! Um sicherzugehen, dass der Rückgabewert einer Funktion nicht verwendet wird, kann er an denvoid-Operator übergeben werden, um sicherzustellen, dass (zum Beispiel) sich ändernde APIs nicht dazu führen, dass sich das Verhalten von Pfeilfunktionen ändert.

js
checkbox.onclick = () => void doSomething();

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-void-operator

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2025 Movatter.jp