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

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

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

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

Q&A

解決済

5回答

210閲覧

function 値を渡すとは?

fj-kakeru

総合スコア29

JavaScript

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

0グッド

2クリップ

投稿2018/03/15 18:20

テックアカデミーの内容です。

function judge(money) { if (money > 5000) { document.write("お金持ち"); } else if (money > 3000){ document.write("普通"); } else { document.write("貧乏"); } } //変数moneyに10000を代入する→「お金持ち」と出力される// var money = 10000; judge(money);

いまいちfunctionの流れがわからないのですが(特に、fanctionに値を渡す、、、どこから渡す?返すとはどこに返す?等)
一番最後に、judge(money);を記載するのはなぜですか?

var moneyで10000と数字を入力しているので、その値が、上のjudge()の()部分に渡されるのではないのでしょうか。

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

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

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

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

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

guest

回答5

0

ベストアンサー

他の回答者さんがおっしゃるとおり、前回のご質問から見てみますに、
https://teratail.com/questions/117679
関数というものをご理解されていないように思えます。

関数というか、
プログラムって数学みたいなものなので、
(というか、数学にも関数ありますよね)
まずそこから理解されるのがいいのかと。

数学だと、
x + y = 6
で、x = 2である時に、y = 4ってなるあれです。
上記をjavascriptで関数化すると、こうです。

javascript

1function yReturnSix(xValue){ 2 return 6 - xValue; 3} 4 5var x = 2; 6// 4と出力されます。 7console.log(yReturnSix(x));

代入という言葉も覚えましょう。
代入とは、変数という箱に、値という物を入れる、というイメージです。
関数はレンジみたいなものだと覚えましょう。
上記では、xという箱に、2という数値を入れて、
それを、yReturnSixというレンジで使うために、
xの中身を突っ込んでます。
yReturnSixというレンジは、6 - 突っ込んだ値 という調理を行います。

出来上がった料理を、取り出して、それをテーブルに並べているのが、console.log()です。

質問者さんのテックアカデミーさんの例題で言うなら、

まず最初に、
judgeというレンジ(関数)を先に用意します。
このレンジは、中に入れるものによって、調理の仕方が変わるようになっています。
中身によって、処理の仕方を変える、ifを使うものを、
プログラムではif 構文といいます
(他にも、switch構文ってのもありますが)
牛乳をごはんと同じ時間チンしたら大変なことになりますよね?
そうならないように、条件によって変えているんです。

そして、
var money = 10000;
これは、moneyという箱(変数)に10000という中身(値)を入れています。
で、最後に、
judgeというレンジに、moneyの中身をいれ、調理(関数を呼び出す)を行うのが、
judge(money);
です。

例えがあれでしたが、
とにかく、何かで例えるなりなんなりして、
プログラムが何をやっているのか、何ができるのか、を理解していきましょう。
なんで関数なんて、まどろっこしいやり方するの?
という質問はしないでください。
理由はもっと複雑なプログラミングをして行くときにわかってきます。
今は関数の使い方などを学んで、徐々にステップアップしていくべきかと思います。

長文失礼しました。

投稿2018/03/16 01:51

miyabi_takatsuk

総合スコア9528

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

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

0

パラメータとアーギュメントの違いについて理解するとわかりやすくなります。

パラメータは、関数を定義する際に使う、外部から渡される入力値を表す変数です。

function judge(money) { if (money > 5000) { document.write("お金持ち"); } else if (money > 3000){ document.write("普通"); } else { document.write("貧乏"); } }

今回のコードでは、冒頭でjudge関数が定義されています。この関数は金額に応じて「お金持ち」「普通」「貧乏」のいずれかを、document.writeで書き出しています。
この時、判定に使う金額は外部から渡さなければいけないため、それをmoneyというパラメータとして定義しています。

アーギュメントは、関数を実行する際に渡す値のことです。

var money = 10000; judge(money);

コードの最後で、judge関数にmoneyという変数の値(=10000)を渡しています。
関数内では定義に沿って、moneyを10000として処理を行います。そのため、書き出す内容は「お金持ち」になります。

本来、パラメータとアーギュメントは異なるものです。
今回のコードでは両方が同じmoneyという名前になっており、別にエラーにはならないのですが、読んでいてわかりにくいので違う名前にすることの方が多いです。

function judge(money) { if (money > 5000) { document.write("お金持ち"); } else if (money > 3000){ document.write("普通"); } else { document.write("貧乏"); } } //変数assetの値をjudge関数に渡す→「お金持ち」が出力される// var asset = 10000; judge(asset);

こう書き直すとわかりやすくなります。

投稿2018/03/15 20:35

編集2018/03/16 02:15
Udomomo

総合スコア1524

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

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

miyabi_takatsuk

2018/03/16 01:11 編集

>今回のコードでは、冒頭でjudge関数が定義されています。この関数は金額に応じて「お金持ち」「普通」「貧乏」のいずれかを戻り値として返しています。 厳密に言えば、returnしてないから、値返してませんけどね。 中でhtmlに書き出し(表示)ってしてるだけなので。
Udomomo

2018/03/16 02:13

確かに。書き出し処理のコードの一部のようですね。 回答を修正しました。
guest

0

ここでも回答を書いてますんで見てみてください

https://teratail.com/questions/117679

投稿2018/03/15 23:52

y_waiwai

総合スコア87774

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

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

0

var moneyで10000と数字を入力しているので、その値が、上のjudge()の()部分に渡されるのではないのでしょうか。

関数の引数定義がたまたま同名のmoneyである事が混乱させていると思います。
直値も渡せるので下記を実行してみて下さい。

judge(1000); judge(3001); judge(5001);

同じ処理を冗長記述するより関数の方がスッキリして保守性が上がる事がわかりますか?

投稿2018/03/16 00:51

HS1111

総合スコア91

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

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

0

あなたは関数というものの概念が理解できていないようなので、まずそれを勉強してください。前の質問で、比較的説明がわかりやすそうなものを紹介しました。ほかにも「プログラム 関数」などで検索すればいろいろ出てくるはずです。

投稿2018/03/16 00:36

KojiDoi

総合スコア13671

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問