JavaScript - voidキーワード:入門ガイド
こんにちは、未来のJavaScript魔法使いさんたち!今日は、JavaScriptのvoid
キーワードの世界に楽しく飛び込んでみましょう。コードを書いたことがない人も心配しないでください。あなたの親切なガイドとして、私はこのテーマをステップバイステップで探求していきます。では、バーチャルの魔杖(つまりキーボード)を手に取り、一緒に潜りましょう!
voidキーワードとは?
本題に入る前に、まずvoid
とは何かを理解しましょう。JavaScriptでは、void
は式を評価した後、undefined
を返すオペレータです。あなたは思うかもしれません、「なぜそんなことをするのか?」。そうですね、好奇心の強い皆さん、それには理由があります。それを一緒に見つけ出しましょう!
文法
void
キーワードの文法は非常にシンプルです:
void expression
ここで、expression
は任意の有効なJavaScript式です。void
オペレータはこの式を評価しますが、常にundefined
を返します。
簡単な例を見てみましょう:
console.log(void 0); // 出力:undefined
console.log(void(0)); // 出力:undefined
console.log(void "Hello"); // 出力:undefined
console.log(void (2 + 3)); // 出力:undefined
ご覧の通り、void
の後ろに何を置いても、常にundefined
を返します。まるで何でもかもウサギに変える魔术師のように – ただし、私たちの魔术師はすべてをundefined
に変えます!
voidキーワードの優先順位の重要性
それでは、少し進んだ話題 – void
キーワードの優先順位について話しましょう。JavaScriptでは、オペレータには異なる優先順位があり、それが評価の順序を決定します。
void
オペレータは非常に高い優先順位を持っています。つまり、他のほとんどのオペレータよりも先に評価されます。例を見てみましょう:
let x = 1;
console.log(void x === undefined); // 出力:true
console.log(void (x = 5)); // 出力:undefined
console.log(x); // 出力:5
この例では、void x === undefined
は(void x) === undefined
として評価され、void (x === undefined)
として評価されるわけではありません。void
オペレータはまずx
に適用され、undefined
を返します。
2行目では、x
に5を割り当てているにも関わらず、void
オペレータは引き続きundefined
を返します。しかし、割り当ては行われるため、3行目でそれを確認できます。
javascript:void(0)とは?
HTMLでjavascript:void(0)
に遭遇したことがあるかもしれません。特にアンカータグのhref
属性で使われていることが多いです。それを解明しましょう!
<a href="javascript:void(0);" onclick="console.log('Clicked!')">クリックしてね</a>
この例では、javascript:void(0)
はリンクのデフォルト動作(新しいページに移動すること)を防ぐために使われています。onclick
イベントはまだ発火しますが、リンクは他の何もしないままです。
まるで「ボールを投げる前に犬に「止まれ」と言う」ようなものです – 犬は動作を見ますが、動かない!
関数との組み合わせ
void
キーワードは関数とも使うことができます。例を見てみましょう:
function greet() {
console.log("Hello, world!");
}
console.log(greet()); // 出力:Hello, world! undefined
console.log(void greet()); // 出力:Hello, world! undefined
どちらの場合でも、「Hello, world!」がコンソールに表示されます。しかし、greet()
は implicitly undefined
を返します(JavaScriptの関数は、返り値が指定されていない場合、默认でundefined
を返します),一方でvoid greet()
は明示的にundefined
を返します。
即時関数式(IIFE)との組み合わせ
最後に、void
が即時関数式(IIFE)とどのように使われるかを見てみましょう。IIFEは定義されたと同時に実行される関数です。
void function() {
console.log("I'm an IIFE!");
}();
// 出力:I'm an IIFE!
この場合、void
は関数式が式として扱われるようにするために使われ、宣言ではありません。まるでパーティーに忍び込むために仮装するようなものです – 関数は実行されますが、その後は残りません!
voidキーワードの用法のまとめ
以下に、void
キーワードの使い方をまとめた表を示します:
方法 | 例 | 説明 |
---|---|---|
基本的な用法 | void 0 |
undefined を返す |
式との組み合わせ | void (2 + 3) |
式を評価し、undefined を返す |
HTMLでの使用 | <a href="javascript:void(0);"> |
デフォルトのリンク動作を防ぐ |
関数との組み合わせ | void greet() |
関数を呼び出し、undefined を返す |
IIFEとの組み合わせ | void function() {}(); |
IIFEを実行し、undefined を返す |
そして、皆さん!void
キーワードの世界を旅しました。void
は毎日使うものではありませんが、理解することで、より完全なJavaScript開発者になります。
練習を続け、好奇心を持ち続け、すぐにプロのようにJavaScriptの魔法を操るようになるでしょう!次回まで、楽しいコードを!
Credits: Image by storyset