戻り値を使用する判断基準について理解したい

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 コメント