関数の定義(2)

関数のまとめ

  • 関数を定義するには、functionキーワードを使用する
  • 関数の戻り値は、return文で指定する
  • 関数を呼び出すと、実引数が仮引数に代入される
  • スコープとは、変数が有効になる範囲
  • 関数内で宣言した変数は「ローカル変数」といい、スコープは関数の内部に限定される
  • 関数の外で宣言した変数は「グローバル変数」といい、スコープはプログラム全体になる

ユーザー定義関数の例

  1. 入り口(第1引数:男性か女性、第2引数:身長)
  2. 出口(標準体重)
  3. 関数名「sWeight」
  4. 「MAN」「WOMAN」は定数
 JavaScript
function sWeight(man, height) {
    var weight;
    // 計算を行う
    if (man) {
        weight = (height - 80) * 0.7;
    } else {
        weight = (height - 70) * 0.6;
    }
    return weight; //値を返して関数を抜ける
}

var height; //身長
var weight; //体重
var MAN = 1;
var WOMAN = -1;

//身長が180cmの男性の体重を求める
weight = sWeight(1, 180);
document.write('<h1>身長が180cmの男性の体重は');
document.write(weight);
document.write('kgです</h1>');

//身長が160cmの女性の体重を求める
height = 160;
weight = sWeight(WOMAN, height);
document.write('<h1>身長が', height, 'cmの女性の体重は');
document.write(weight);
document.write('kgです</h1>');

標準体重

 

変数の有効範囲 | スコープ

  • 「変数のスコープ」とは変数の値が利用できる範囲のこと。
  • 「ローカル変数」とは関数内で宣言した変数で、関数内部でしか使えない。
  • グローバル変数」とは関数外で宣言した変数で、プログラム全体で使うことができる。
html、JavaScript
<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="UTf-8">
    <title>変数のスコープ</title>
    <script>
     function testFunc() {
     //  var num;
     num = 5;
    }
    </script>
  </head>
  <body>
    <h1>
      <script>
       var num = 3;
       testFunc();
       document.write(num, "<br>");
     </script>
    </h1>
  </body>
</html>

※この場合、表示されるのはローカル変数に代入された値で5になる。(変数宣言をコメントアウトしているから)
※「testFunc()」は引数を戻さないので「return文」は不要。

変数の有効範囲を確認せよ
<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="UTf8">
    <title>変数のスコープ</title>
    <script>
     function test() {
     var num1 = 4;
     num2 = 5;
    }
    </script>
  </head>
  <body>
    <h1>
      <script>
       var num1, num2;
       num1 = 3;
       num2 = 6;
       test();
       document.write('<p>', num1, '</p>');
       document.write('<p>', num2, '</p>');
     </script>
    </h1>
  </body>
</html>

3,5が表示される。