1. 実現したいこと
return
は具体的にどのようなケースで必要になるのか理解したいです。
2. 前提
javascriptでビンゴゲームの作成に挑戦しています。
作成の過程で、「columns
配列の内容を出力する為には、createColumn
関数の結果をreturn
で返す必要がある」と学習しました。
お手本のコードは以下です。
js
function createColumn (col) { const source = []; for (let i = 0; i < 15; i++){ source[i] = i + 1 + 15 * col; }; const column = []; for (let i = 0; i < 5; i++ ) { column[i] = source.splice(Math.floor(Math.random() * source.length), 1)[0]; } return column; } const columns = []; columns[0] = createColumn(0); columns[1] = createColumn(1); columns[2] = createColumn(2); columns[3] = createColumn(3); columns[4] = createColumn(4); columns[2][2] = "FREE"; console.table(columns);
3. 課題
なぜ今回だけreturn
で値を返す必要があるのか分かりません。
そもそも戻り値には2つの意義があると考えます。
➀関数呼び出し時に、呼び出し元に値を返す
➁その時点で処理を停止する
今回は➀に準じてreturn
を使用したのだと思います。
ですが、これまで関数を定義してきた際に、
戻り値を指定する機会はあまりありませんでした。
例えば、ストップウォッチを作成するお手本コードにおいて、
同様に関数が呼び出されていますが、return
は使用されていません。
js
'use strict'; { const timer = document.getElementById('timer'); const start = document.getElementById('start'); const stop = document.getElementById('stop'); const reset = document.getElementById('reset'); let startTime; let TimeoutId; let elapsedTime = 0; function countUp() { const d = new Date(Date.now() - startTime + elapsedTime); const m = String(d.getMinutes()).padStart(2, '0'); const s = String(d.getSeconds()).padStart(2, '0'); const ms = String(d.getMilliseconds()).padStart(3, '0'); timer.textContent = `${m}:${s}.${ms}`; TimeoutId = setTimeout(() => { countUp(); }, 10); } function Initial() { start.disabled = false; stop.disabled = true; reset.disabled = true;}; function Running() { start.disabled = true; stop.disabled = false; reset.disabled = true;}; function Stopped() { start.disabled = false; stop.disabled = true; reset.disabled = false;}; Initial(); start.addEventListener('click', () => { Running() ; startTime = Date.now(); countUp(); }); stop.addEventListener('click', () => { Stopped() ; clearTimeout(TimeoutId); elapsedTime = Date.now() - startTime; }); reset.addEventListener('click', () => { Initial(); timer.textContent = "00:00.000"; });}
関数を呼び出して値を使用するならば、
同様に➀に準ずるのではかと考えましたが、return
には使用するケースとそうでないケースがあるのでしょうか。
また、あるとするならばその判断基準は何になるのでしょうか。
4. 試してみたこと
戻り値の定義、使い方や使用例を検索しましたが、
具体的なイメージが掴めませんでした。
0 コメント