A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/void below:

void æ¼”ç®—å - JavaScript | MDN

void 演算子

Baseline Widely available

void 演算子は与えられた式 (expression) を評価し、undefined を返します。

試してみましょう
const output = void 1;
console.log(output);
// Expected output: undefined

void 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"
}
構文 解説

この演算子により、何らかの値を生成する評価式を、式が undefined と評価されることが望ましい場面に置くことができます。

void 演算子は、よく単にプリミティブ値 undefined を得る目的で使われ、一般的に "void(0)" と書かれます(これは "void 0" と等価です)。この目的であれば、グローバル変数 undefined を使用することができます。

なお、void 演算子の 優先順位 を考慮するべきであり、括弧は void 演算子に続く式の解決を明確にするのに役立つとされています。

void 2 == "2"; // (void 2) == '2', false を返す
void (2 == "2"); // void (2 == '2'), undefined を返す
例 即時実行関数式

即時実行関数式 を使用する場合、 void により function キーワードが宣言ではなく式として扱うよう強制することができます。

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

// Output: "Executed!"

上記の関数を void キーワードなしで実行すると、捕捉されない SyntaxError が発生します。

JavaScript URI

javascript: の URI に対応しているブラウザーでは、 URI の中のコードを評価し、返値が undefined でない限り、返された値でページの内容を置き換えます。 void 演算子は、undefined を返すために使用できます。

<a href="javascript:void(0);"> Click here to do nothing </a>

<a href="javascript:void(document.body.style.backgroundColor='green');">
  Click here for green background
</a>

メモ: javascript: 擬似プロトコルは控えめなイベントハンドラーなどの代替であり、積極的に使用するべきではないでしょう。

アロー関数からのリーク防止

アロー関数は略式の中括弧のない構文を導入しており、式を返します。 これは、以前は何も返さなかった関数呼び出しの結果を返すことで、意図しない副作用を引き起こす可能性があります。関数の返値が使用されないことを想定している場合は、安全のため void 演算子に渡すことで、(例えば) API の変更によってアロー関数の動作が変更されないようにすることができます。

button.onclick = () => void doSomething();

これにより、 doSomething の返値が undefined から true に変わっても、このコードの動作が変わらないことが保証されます。

仕様書 ブラウザーの互換性 関連情報

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4