--- title: void 演算子 slug: Web/JavaScript/Reference/Operators/void tags: - JavaScript - Operator - URIs - Unary translation_of: Web/JavaScript/Reference/Operators/void ---
{{jsSidebar("Operators")}}

void 演算子は与えられた式 (expression) を評価し、{{jsxref("Global_Objects/undefined", "undefined")}} を返します。

構文

void expression

説明

この演算子は、「戻り値が undefined であってほしい場所に、それ以外の戻り値を持つ式を挿入したい場合」に有用です。

void 演算子は単にプリミティブ値 undefined を得る目的でしばしば使われ、一般的に "void(0)" と書かれます(これは "void 0" と等価です)。この目的であれば、代わりに値が {{jsxref("Global_Objects/undefined", "undefined")}} の変数、未定義のグローバル変数などを使用する事もできます。

即時実行関数式を使用するとき、 void は、function キーワードを宣言の代わりに式として扱うように強制するために使用できます。

void function iife() {
    var bar = function () {};
    var baz = function () {};
    var foo = function () {
        bar();
        baz();
     };
    var biz = function () {};

    foo();
    biz();
}();

JavaScript URI

javascript: から始まる URI をサポートしたブラウザに於いて、それは、URI 内のコードを評価し、戻り値が {{jsxref("Global_Objects/undefined", "undefined")}} でなければ、返された値にページコンテンツを置き換えます。void 演算子は、{{jsxref("Global_Objects/undefined", "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: 疑似プロトコルはあくまで控えめなイベントハンドラなどの代替であり、積極的に使用するべきではないでしょう。
しかしながらこれは、戻り値を必要としないブックマークレットの作成の際などに役立つ場合があります。

仕様

仕様 ステータス コメント
{{SpecName('ESDraft', '#sec-void-operator', 'The void Operator')}} {{Spec2('ESDraft')}}  
{{SpecName('ES6', '#sec-void-operator', 'The void Operator')}} {{Spec2('ES6')}}  
{{SpecName('ES5.1', '#sec-11.4.2', 'The void Operator')}} {{Spec2('ES5.1')}}  
{{SpecName('ES3', '#sec-11.4.2', 'The void Operator')}} {{Spec2('ES3')}}  
{{SpecName('ES1', '#sec-11.4.2', 'The void Operator')}} {{Spec2('ES1')}} 初期定義。JavaScript 1.1 で実装。

ブラウザ実装状況

{{Compat("javascript.operators.void")}}

関連項目