Join MDN and developers like you at Mozilla's View Source conference, 12-14 September in Berlin, Germany. Learn more at https://viewsourceconf.org

void 演算子

この翻訳は不完全です。英語から この記事を翻訳 してください。

概要

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

構文

void expression

用途

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

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

Immediately Invoked Function Expressions

When using an immediately-invoked function expression, void can be used to force the function keyword to be treated as an expression instead of a declaration.

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

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

JavaScript URI

javascript: から始まる URI をサポートしたブラウザに於いて、window.locationundefined 以外が返される事によって意図せずページ内容が書き換わってしまうような場合に、これを抑制する目的でも使用可能です。

<a href="javascript:void(0);">
  クリックしても何も起こらない
</a>

<a href="javascript:void(document.body.style.backgroundColor='green');">
  クリックで背景色を緑色に
</a>

もし上記コードで void() が用いられていなかった場合、ページ内容が式の戻り値により書き換わってしまうでしょう。

但し、javascript: 疑似プロトコルはあくまでイベントハンドラの代替であり、積極的に使用するべきではないでしょう。
【訳注: しかしながらこれは、戻り値を必要としないブックマークレットの作成の際などに役立つ場合があります。】

Specifications

Specification Status Comment
ECMAScript 2017 Draft (ECMA-262)
The void Operator の定義
ドラフト  
ECMAScript 2015 (6th Edition, ECMA-262)
The void Operator の定義
標準  
ECMAScript 5.1 (ECMA-262)
The void Operator の定義
標準  
ECMAScript 3rd Edition (ECMA-262)
The void Operator の定義
標準  
ECMAScript 1st Edition (ECMA-262)
The void Operator の定義
標準 Initial definition. Implemented in JavaScript 1.1

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (有) (有) (有) (有) (有)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (有) (有) (有) (有) (有) (有)

See also

ドキュメントのタグと貢献者

タグ: 
 このページの貢献者: lv7777, coeurl, teoli, ethertank
 最終更新者: lv7777,