リンクがクリックされるのを明白に防止すること (を使用) と、 coffeescript のような多くの JavaScript プリコンパイル済み言語でjavascript:void(0);
の定義(ここではとなる) は別として --> 関数は他に何に使用できますか?undefined
undefined
void 0
void
関連: "javascript:void(0)" とはどういう意味ですか?
便利なリンク:の MDN ページvoid
リンクがクリックされるのを明白に防止すること (を使用) と、 coffeescript のような多くの JavaScript プリコンパイル済み言語でjavascript:void(0);
の定義(ここではとなる) は別として --> 関数は他に何に使用できますか?undefined
undefined
void 0
void
関連: "javascript:void(0)" とはどういう意味ですか?
便利なリンク:の MDN ページvoid
まず、void
関数ではなく演算子です。あなたの質問への答えは、あなたが質問で提供したMDNへのリンクにある説明よりも明確に与えることはできません:
概要
void
演算子は、指定された式を評価してから を返しますundefined
。...
用途
この演算子を使用すると、副作用を生成する式を、評価される式が必要な場所に挿入でき
undefined
ます。
副作用を生じる式の戻り値を変更します。
var i;
i = 0; // returns 0
void i = 1; // returns undefined
しかし、この使用法は、ほとんどの状況ではあまり価値がありません。
私たちはすでに知っています:
undefined
- グローバル変数undefined
は変更される可能性があるため (予約語ではない)、値void 0
を取得するためのより信頼性の高い方法です。undefined
例えば:obj.foo === void 0
その他の用途:
冗長なコンソール出力を防ぐ- JavaScript コンソールでコードを実行したいだけで、興味のない冗長な出力でコンソールを汚染したくない場合に使用します。
明示的undefined
に関数に渡す- 引数を渡さずに関数が呼び出されたかどうか、または引数が次の値を持つ関数に渡されたかどうかを知ると便利ですundefined
。
function countArguments(a) {
console.log(a === undefined);
console.log(arguments.length);
}
countArguments();
countArguments(void 0);
コンソール出力は次のようになります。
真実 0 真実 1
JavaScriptにはこの演算子が必要ですか? おそらくそうではありません。自己呼び出しの匿名関数から同じ機能 (およびそれ以上) を取得できます。
(function(){ /* expression */ })()
しかし、それはそれほど簡潔ではありません。