LoginSignup
0
0

More than 3 years have passed since last update.

JavaScriptをすこーし勉強してみたので書き留める③

Posted at

最低限の知識一応あるけど、復習も兼ねて書いてみることにするの巻その③

関数定義

定義

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…"
    • 何かをチェックし、真偽値を返す


関数式まで書こうと思ったけど、わからんくて諦めた。ニュアンスはわかるけど言語化できない。
やっぱ実際に書いてないからむずいなぁ。動かしてみてからにしよ。
おわりまる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0