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

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

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

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

Q&A

解決済

2回答

269閲覧

JavaScriptのreturnについて

myksgo

総合スコア21

JavaScript

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

0グッド

1クリップ

投稿2019/07/01 03:31

編集2019/07/01 03:39

JavaScriptのreturn文についてご教授お願い致します。

HTML

1<div id="myid"> 2 <h1>テキスト</h1> 3</div> 4 <input type="button" value="click onclick="myfunc()"> 5< sctipt > 6 let myfunc = () => { 7 let myid = document.getElementById('myid').textContent = 'テキスト1'; 8 } < /script>

このように記載するとボタンをクリックした際に「テキスト」から「テキスト1」に文章が変化すると思いますが、こちらの文章の中に「return」が入っていないのに動作するのは、なぜでしょうか?

JavaScript

1let total = (price) => { 2 let tax = 0.08; 3 price = price + price * tax; 4 return price; 5} 6console.log(total(100));

このような場合にはreturnを記述しなければ「未定義」になるのはある程度分かったのですが、基本的にfunctionにはすべてreturnを記述すると思っていたので記述しない場合はどのような場合なのか疑問に思い質問致しました。

よろしくお願い致します。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/07/01 03:33

これは実際のコードですか? <div id="myid>  ←"を閉じ忘れています。
myksgo

2019/07/01 03:39

mts10806様 ご指摘ありがとうございます。 "が抜けており申し訳ございません。 また、インデントのためのツールのリンクもありがとうございます。
m.ts10806

2019/07/01 03:40

できればコードフォーマット機能の付いたエディタを利用されたほうが良いかとは思います。
myksgo

2019/07/01 03:47

普段はVSCodeを利用して記述しているのですが、コードはそちらで書いて張り付けたほうがいいですね。 そのままテラテイルに記述してしまっていたので次回から記述したいと思います。
myksgo

2019/07/01 04:01

次回から注意して質問したいと思います。 ご丁寧にありがとうございます!
guest

回答2

0

基本的にfunctionにはすべてreturnを記述すると思っていたので

そんなことはありません。

記述しない場合はどのような場合なのか疑問に思い質問致しました。

関数の戻り値を使わない場合は不要です。

投稿2019/07/01 03:39

otn

総合スコア84499

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

myksgo

2019/07/01 03:58

otn様 回答ありがとうございます。 今回の場合は戻り値が不要であるため、returnは記述しないでも動くのですね。
guest

0

ベストアンサー

document.getElementById('myid').textContent='テキスト1';

↑で#myid.textContentテキスト1という文字列を入れています。

基本的にfunctionにはすべてreturnを記述すると思っていた

単に「何かしら処理をして終わり」という使い方もあるのでreturnは必須ではありません。
例えば処理した結果、alert()で結果を出力して終わり、とか。
returnするのではなくグローバル変数に値をつめるだけ、とか。
今回も「文字列を入れて終わり」なのでreturnは必要ありません。

投稿2019/07/01 03:37

編集2019/07/01 03:37
m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

myksgo

2019/07/01 04:00

mts10806様 何かしらの処理をした結果を返す場合にはreturnを記述し、単に処理して終わりであればreturnを記述しなくても大丈夫との認識でよろしいでしょうか?
m.ts10806

2019/07/01 04:02

「結果を返す」だけがreturnの動機だと弱いので「返す値を呼び出し元で何かしらに使わせる」と覚えてください。 確かに呼び出される関数の方はどこから呼び出されるか、返す情報が何に使われるか知らないのが大前提ではありますが、返すのは「結果を使ってもらうため」なので。
myksgo

2019/07/01 04:11

非常にわかりやすい説明ありがとうございました。 理解できました!
m.ts10806

2019/07/01 04:17

解決されたようで何よりです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問