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

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

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

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

Q&A

解決済

4回答

14037閲覧

Javascriptの「引数」の意味が分かりません。。。

ShunYoshizawa

総合スコア103

JavaScript

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

0グッド

3クリップ

投稿2015/11/13 14:49

「引数」をネットで調べると、、、
「プログラム中で関数やメソッド、サブルーチンなどを呼び出すときに渡す値のこと」
と書いてありました。

しかし具体的に分かりません。。。

どなたか具体的に教えていただけないでしょうか?

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

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

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

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

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

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

guest

回答4

0

ベストアンサー

「関数やメソッド、サブルーチン」というのは汎用的な何度も繰り返す処理を切り出して纏めたもので、それ単体では意味がありません。

「一人当たり5枚と予備に1枚、お皿を準備してください。人数はx人です」といったような場合、数学(算数?)では f(x)=5x+1 のように書きますが、この()の中のxがプログラムで言うところの引数になります。
「では人数が2人の場合と4人の場合に必要なお皿の枚数を回答してください」
といった場合に、次のように書けば、都度計算式を書かなくてよくなります。
2人の場合は: f(2)枚
4人の場合は: f(4)枚

呼び出すときというのは、このように定義した関数を使うとき
渡す値とは、その関数が結果を出すために必要なデータのことです。

javascriptでは関数は次のようなフォーマットで定義します
function 関数名(引数){処理内容}

呼び出すときは次のようにします。
関数名(値)

javascript

1function calc(x){ 2 return 5*x+1; 3} 4console.log(calc(2)+"枚"); // 11枚 を出力 5console.log(calc(4)+"枚"); // 21枚 を出力

投稿2015/11/13 15:49

hirohiro

総合スコア2068

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

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

ShunYoshizawa

2015/11/13 15:59

すごく分かりやすいです! 数学のように考えればかなり分かりやすいと感じることができました! 本当にありがとうございます!
guest

0

function 君自身がメソッド(引数1) {
// 引数1は入れ物。君自身がメソッドを呼び出すにあたり、引数を1個必要とするが、
// 相手がどんなに豪華な箱を用意しても君には、「引数1」という入れ物にしか映りません。
//
if (引数1を調べたら "最新の iphone が入ってた") {
return "誕生日プレゼントにこんな高いものありがとう";
} else if (引数1の中身は "最新の iphone6s だけど君はこれが最新とは知らない") {
return "とりあえず、受け取るけど・・・(型落ちの iphone どうすんだよ)";
}
}

function 君の友達自身がメソッド(引数なし) {
var きれいな色紙でラッピングされたプレゼント = "Softbank の iphone6s 現金で購入";

// 友達は、君にプレゼントを贈るが、友達はこんな豪華な包装したんだからきっと気に入るだろう、、、 // と期待して反応を待つが、君は「豪華ラッピング包装のプレゼント」であることは知らない、 // ということは友達は知らない。なぜなら、君には「引数1」というモザイクの掛かった入れ物 // だけが唯一見えるのだから。 var 君の反応 = 君自身がメソッド(きれいな色紙でラッピングされたプレゼント); if (君の反応 == "とりあえず、受け取るけど・・・") { // 喜んでくれなかった、残念 } else { // プレゼントして良かったが、莫大な借金をどうやって返せば・・・ }

}

こんな感じです。
君は、「きれいな色紙でラッピングされたプレゼント」を「引数1」という入れ物で受け取ります。
「引数1」の中には「iphone6s」が入っていますが、君には、きれいなラッピング包装は見えません。

プレゼントを開けて中身を見た君は、とりあえずもらっとくよ、とつれない返事を返すと、
プレゼントした友達は、喜んでくれないの??と幻滅しました。

引数は、判定するまで中身がなんだかわからないもの。
インターフェースという言葉があって、互いにこれとコレとアレの3つだけを渡す仕組みでやりましょう、
なんて決めておくと、引数には「これ」と「コレ」と「アレ」の3つが入ってくるけど、これまた
判定してみないと本当に3つ以外のものが渡されないかがわからない。

結局取り決めをやっても、それが本当に期待するものなのかは判断する必要がある。
もちろん、期待するものが入ってくる前提で判定すら行わずにものごとを進める場合もある。
JavaScript のメソッドには、引数を無限個渡すことができるようになっているんです。
100 個でも 1000 個でも好きなだけ渡せます。
JavaScript はオーバーロードという仕組みがないので、引数1個とるメソッドも、引数100個とる
メソッドも同じ名称のときは、同じものとみなされます。

投稿2015/11/13 15:51

ipadcaron

総合スコア1693

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

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

ShunYoshizawa

2015/11/13 16:23

回答ありがとうございます。 「引数は、判定するまで中身がなんだかわからないもの。」 といういうところがとても分かりやすく、しっくりきました。 あとにファンクションの呼び出しを持ってくる理由は、 数値によって結果を変えやすくするためでしょうか??
guest

0

関数を「何度も使われるひとかたまりの処理」と考えた場合
にその処理を使う際に使う側が渡す必要がある値(関数の中で固定出来ない値)となります。

例えば、
自販機がプログラム全体で
「ジュースを買う」という処理を関数だとすると、
ジュースを買う人は「どのジュースを買うか」と「お金」を関数に渡す必要があります。
この場合、「ジュース名」「投入金額」が引数になります。

スーパーのレジがプログラム全体で、
「税抜き価格を渡したら税込み価格を計算する」という処理が関数だとすると
レジを打つ人は引数として「税抜き価格」をレジに渡します。

投稿2015/11/13 15:30

tanat

総合スコア18713

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

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

ShunYoshizawa

2015/11/13 15:37

つまり、、、 実行する時に必要な変動する値が「引数」ということでしょうか?
tanat

2015/11/13 15:51

そうですね。そんなイメージです。 逆に、外からの変動する値を必要としない処理の場合は引数は不要です。 例えば、 「小吉・中吉・大吉・凶から、ランダムで一つ出力する」 みたいな処理だと引数は必要ありません。
ShunYoshizawa

2015/11/13 16:03

たしかにそうですね! 指定しなくて良い場合は引数はいらないということですね! ありがとうございます!
guest

0

function 関数名(引数, 引数) {
return 返り値;
}

//呼び出し
関数名('引数', ’引数’);

こんな感じ


実行すればイメージできると思います。

html

1<!DOCTYPE HTML> 2<html lang="ja-JP"> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 </head> 7 <body> 8 <script type="text/javascript"> 9 function func(arg) { 10 alert(arg); 11 } 12 13 func(1); 14 </script> 15 </body> 16</html>

投稿2015/11/13 14:51

編集2015/11/13 15:16
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

ShunYoshizawa

2015/11/13 15:37 編集

回答ありがとうございます。 呼び出すときに渡す値というところが分かりません。。 教えていただけると嬉しいです。 追加の投稿ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問