関数の定義(2)
関数のまとめ
- 関数を定義するには、functionキーワードを使用する
- 関数の戻り値は、return文で指定する
- 関数を呼び出すと、実引数が仮引数に代入される
- スコープとは、変数が有効になる範囲
- 関数内で宣言した変数は「ローカル変数」といい、スコープは関数の内部に限定される
- 関数の外で宣言した変数は「グローバル変数」といい、スコープはプログラム全体になる
ユーザー定義関数の例
- 入り口(第1引数:男性か女性、第2引数:身長)
- 出口(標準体重)
- 関数名「sWeight」
- 「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が表示される。