JavaScriptの_(アンダースコア)と引数のデフォルト値についての理解

_(アンダースコア)について

JavaScriptでは、アンダースコア(_)は主に以下のようなケースで使われます。

1. 使わない引数に使用

関数の引数として、実際には使わない変数を表すために _ を使います。例えば、mapforEach といった高階関数で使用される場合が多いです。_ はただの慣習であり、他の変数名でも問題ありませんが、_を使うことでその引数が実際には使用されないことが明示されます。

array.map((_, index) => {
  return index * 2;
});

この場合、第一引数の _ は無視されており、第二引数 index だけが使用されています。_ を使うことで、この引数が意図的に使われないことがわかりやすくなります。

2. ライブラリやフレームワークでの使い方

例えば、lodash ライブラリなどでも _ はよく使用されますが、これは単に名前として使われているに過ぎません。JSにおけるアンダースコアは、一般的に「特別な意味」を持つわけではなく、単に「使わない引数」としての意味合いを強調するために使用されることが多いです。

引数のデフォルト値について

引数にデフォルト値を設定するという概念は、JavaScriptの関数において、引数が指定されなかった場合に代わりに使用する値をあらかじめ指定するというものです。これと _ を使うことは無関係です。

例えば、次のように関数の引数にデフォルト値を設定できます。

function greet(name = "ゲスト") {
  console.log("こんにちは、" + name);
}

greet();  // 出力: こんにちは、ゲスト
greet("プシュー");  // 出力: こんにちは、プシュー

上記のコードでは、greet 関数に name 引数が渡されない場合、デフォルト値「ゲスト」が使用されます。この仕組みは関数の定義時に引数に = を使ってデフォルト値を設定する方法です。

_ とデフォルト引数の違い

これらは目的が異なりますが、いずれもコードの可読性や明示性を高めるために使われます。