Javascriptを始めたばかりで、
「function」についてしっかりと理解できません。
ネットや本で調べて考えているのですが、あまり分かりません。
どなたか分かりやすく説明していただけると嬉しいです。
どうかよろしくお願い致します。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答6件
0
プログラムライクな回答が多いので・・・。
単純に、部品(パーツ)化(関数化、クラス化)すると言う事です。
例えば、車をつくる時に、全てを同じ会社で作るわけではないですよね。
タイヤならタイヤ屋さん、座席なら座席を作る会社、エンジンならエンジンの工場・・・etc。
これらを、最終的に、組立て行くわけです。
プログラムの場合、物と違って、部品(パーツ)=”関数やクラス”の再利用や、インスタンス化(コピー)が出来ます。
それによって、同じ動作をする物などを、何度も利用出来る為、何度も作り直す必要がなく、そのパーツつまり関数やクラスを呼び出して、使用するのです。
通常、プログラムと言うと、main関数から始まるのが普通ですが、
JavaScriptは、簡易プログラム(スクリプト)の為、main関数という考え方がありません。
投稿2015/11/15 16:37
退会済みユーザー
総合スコア0
0
関数は一言で言うと「やりたいこと」をひとまとめにして使いやすくするものです。その関数を「function」という文字を使うとルールにして、定義し、使い回すということです。したがって、「function」を使うことで分かりやすい簡潔なプログラムとなります。
投稿2015/11/14 21:20
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
皆様すごく詳しい回答をしていらっしゃるので,ざっくりした回答をしてみようかなと思います.
例えば,
JavaScript
1var result = add(1, 2); //関数の呼び出し( add(1, 2) ) 2alert( result ); //結果の表示 3 4function add(val1, val2){ 5 var ans = val1 + val2; //与えられた数字を足します(今回は1+2) 6 return ans; //計算結果を返します(今回は3) 7}
このスクリプトを実行すると,3というアラートが表示されます.
このようにある纏まった処理を,function(関数)という中に記述し,それを外部から呼び出す事ができます.
そしてそれを,我々は関数と呼んでいるわけですね.
何のメリットがあるのか?
この例ではあまりメリットはなさそうに見えますが,関数の中に書かれるプログラムの量が多ければ多いほど,メリットが出ます.
何度も同じ処理を書かなくとも,一度書いてしまえば,後はその関数名を呼び出せば結果が返ってくるからです.
JavaScript
1var result; 2 3result = add(1, 5); //val1 に 1,val2 に 5 を入れて,関数 add を実行します. 4alert(result); //その結果を表示します 5 6result = add(4, 1); 7alert(result); //val1 の方が val2 よりも大きいので 0 が返って来ます 8 9 10function add(val1, val2){ 11 var i = 0; //iという変数を定義します 12 var ans = 0; //ansという変数を定義します 13 14 if ( val1 > val2 ){ //もし val1 よりも val2 の方が小さければ 15 return 0; //この関数は 0 を返す(ここで関数の処理は終了します.) 16 } 17 18 for (i=val1; i<val2; i++){ //繰り返し.変数iの値がval1からval2になるまで繰り返します 19 ans = ans + i; //変数ansに変数iの値を足します 20 } 21 22 return ans; //変数ansの値を返します. 23}
と言った感じですね.
ちなみにmiyabi-sun様の
JavaScript
1function echo_x5(number){ 2 console.log(number * 5); 3}; 4var result = echo_x5(10); // 50 5console.log(result); // undefined
の最後がundefinedになるのは,関数echo_x5にreturnが記述されていないからです.
このreturnで,関数に結果を返します.
なので,例えば
JavaScript
1function echo_x5(number){ 2 console.log(number * 5); 3 return number * 5; 4}; 5var result = echo_x5(10); // 50 6console.log(result); // 50
としてやると,50が表示されるでしょう.
投稿2015/11/14 04:50
総合スコア2004
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/16 05:11
2015/11/16 09:55
2015/11/16 12:58
2015/11/16 16:52
0
ずれているかも知れませんが、
Javascriptにおいて、いわゆる「関数」を定義するためのキーワードです。
詳しい解説や簡単な利用方法はこちらなどが解りやすいのではないかと思います。
function 関数名(引数...){処理}のように書くことで、それが関数だとjavascriptに理解されて定義されます。
functionを英和辞書で引くと「関数」という語は数学カテゴリにしか出てきませんが、「機能」が実状に近いのではないかと思います。
投稿2015/11/13 18:22
編集2015/11/13 18:23総合スコア2068
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/16 05:12
2015/11/16 08:12
2015/11/16 09:47
0
JavaScriptの「function」(関数とも言う)は基本的に下記2つのどちらかの事を指します。
- 数学の関数のように、y = f(x)の関係となるもの
→ つまり値を放り込むと、特定の規則を持った別の値になって帰ってくる
- 複数行の一連の処理の流れを纏めたもの
→ これをサブルーチンと言い、JavaScript以外ではSUBと命名する言語もあります。
前者の使い方の例として、
ドラクエの勇者(攻撃力100)が、ゴーレム(防御力50)に攻撃したとします。
計算式は「攻撃力 / 2 - 防御力 / 4」ですが、ランダム性を持たせて80~120%でダメージがブレるものとします。
JavaScript
1function damage_range(atc, def) { 2 var default_damage = atc / 2 - def / 4; 3 var min_damage = Math.floor(default_damage * 80 / 100) 4 var max_damage = Math.floor(default_damage * 120 / 100) 5 return min_damage + " ~ " + max_damage; 6} 7console.log(damage_range(100, 50)); // "30 ~ 45" 8 9// 勇者がレベルアップして攻撃力が120になったら? 10console.log(damage_range(120, 50)); // "38 ~ 57"
投げ込む値によって結果がコロコロ変わって面白いですね。
そんな計算式どこで使うねんって話ですが、意外とオンラインゲームの○○計算機とかは実際にこういう関数が多く作られています。
仕事や勉学でも計算式で表せるような事はどんどんこういう表記にして取っておくと思わぬ財産になるかもしれないですね。
後者はこんなかんじです
JavaScript
1function echo_x5(number){ 2 console.log(number * 5); 3}; 4var result = echo_x5(10); // 50 5console.log(result); // undefined
これをChromeのデベロッパーツールか何かでコンソールを開いて入力してみましょう。
上記のような表示になるかと思います。
JavaScriptは計算結果を値として返す以外にも、様々な用途に使用することが出来ます。
投稿2015/11/13 16:09
総合スコア21158
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/13 16:18
2015/11/14 05:24
2015/11/16 05:14
0
中学1年の数学の教科書にある「関数」と定義は全く一緒です。
投稿2015/11/13 15:39
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/16 05:00