質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

解決済

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

koala.engineer
koala.engineer

総合スコア3

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

2回答

0リアクション

2クリップ

359閲覧

投稿2022/10/02 08:35

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. 試してみたこと

戻り値の定義、使い方や使用例を検索しましたが、
具体的なイメージが掴めませんでした。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。