最低限の知識一応あるけど、復習も兼ねて書いてみることにするの巻その③
関数定義
定義
function {関数名}({引数}) {
処理
}
呼び出し
関数名({引数})
変数スコープ
ローカル変数
- 関数内の変数定義は関数内でのみ見える。
function showMessage() {
let message = "Hello, I'm JavaScript!"; // ローカル変数
alert( message );
}
showMessage(); // Hello, I'm JavaScript!
alert( message ); // <-- エラー! 変数は関数のローカルです
グローバル変数
- 関数はグローバル変数にアクセスすることができる
- 関数はグローバル変数に対してフルアクセス権を持つ
- グローバル変数の内容を変更することもできる
let userName = 'John';
function showMessage() {
let message = 'Hello, ' + userName;
alert(message);
}
showMessage(); // Hello, John
-------------------------------------
let userName = 'John';
function showMessage() {
userName = "Bob"; // (1) グローバル変数の変更
let message = 'Hello, ' + userName;
alert(message);
}
alert( userName ); // 関数呼び出しの前は John
showMessage();
alert( userName ); // Bob, 関数によって値が変更されました
グローバル変数 注意点
- グローバル変数にはプロジェクトレベルのデータのみを保持するため、どこからでも見える事が重要
- 現代のコードはほとんどもしくは全くグローバル変数を持たない
- なので、関数内で自身のタスクに必要なすべての変数を宣言する
デフォルト値
- パラメータが与えられていない場合、その値は undefined になる
- 引数2つで定義されている関数を引数1つで呼び出すことができる
- その場合、2つ目の引数は
undefined
になる - 引数が指定されなかった場合に使用する
デフォルト値
を指定することができる- 関数定義の引数部分に下記のように指定する
-
=
の右辺に関数を指定することもできる
function showMessage(from, text = "no text given") {
alert( from + ": " + text );
}
showMessage("Ann"); // Ann: no text given
関数の命名
- 関数はアクション
- 名前は通常は動詞
例えば...
-
"get…"
- 値を返す
-
"calc…"
- 何かを計算する
-
"create…"
- 何かを生成する
-
"check…"
- 何かをチェックし、真偽値を返す
等
関数式まで書こうと思ったけど、わからんくて諦めた。ニュアンスはわかるけど言語化できない。
やっぱ実際に書いてないからむずいなぁ。動かしてみてからにしよ。
おわりまる。