JavaScript入門 練習問題 69:配列メソッド:要素の検索
📊 Qraftユーザーの成績
- 難易度 Bランク(レーティング1200)
- 難易度 766位/2795問中
- 正答率 —(0回)
次のコードを実行したときのコンソールへの出力として正しいものはどれですか?
```javascript
const animals = ['cat', 'dog', 'bird'];
const index = animals.indexOf('fish');
console.log(index);
```
- 数値の `-1` が出力される。
- 数値の `0` が出力される。
- 論理値の `false` が出力される。
- 特殊な値 `null` が出力される。
- `undefined` が出力される。
正解と解説を見る
正解:数値の `-1` が出力される。
indexOfメソッドは配列内に指定された要素が存在しない場合、常に戻り値として -1 を返すため、数値の -1 が正解です。
【正解の理由】
`indexOf('fish')`は配列内に'fish'という文字列が存在するか先頭から検索します。見つかった場合はそのインデックス(0以上の整数)を返しますが、見つからなかった場合は特殊な仕様として `-1` を返します。
【不正解の理由】
• 「数値の `0` が出力される。」という説明は誤り。0は配列の最初の要素('cat')を検索した際の戻り値である
• 「論理値の `false` が出力される。」という説明は誤り。真偽値を返すのはincludes()メソッドなどの場合である
• 「特殊な値 `null` が出力される。」という説明は誤り。存在しない要素のインデックスとしてnullが返されることはない
• 「`undefined` が出力される。」という説明は誤り。存在しないプロパティにアクセスした時などとは異なり、indexOfは明確に-1を返す