ねっとぱんだ-プログラミング勉強ブログ-

Webデザイン、プログラミングの勉強ブログ。

【javascript】関数(ユーザー定義関数)【随時更新】

関数の定義と呼び出し

//関数の定義
function 関数名{

}
//関数の呼び出し
関数名();

引き数の指定。

function 関数名(引数1 引数2){
実行する処理。
}

引き数は変数も指定できる。

function add(a,b){
var c = a + b;
document.write(
a + '+' + b + "=" + c
);
}
add(10,20);

引数の例

function sum(num1, num2, num3){

}
sum(1, 2, 3);
sum(4, 5, 6);
  1. function sum(num1, num2, num3) → 関数sumが記述され、
  2. sum(1, 2, 3);  → num1に1、num2に2、num3に3が代入される。
  3. sum(4, 5, 6); → もう一度関数を呼び出し値を代入すると、新たにnum1に4、num2に5、num3に6が代入される。

引数が必要なければ()と省略する。
引数を指定されている数より多く指定した場合

function plus(num1, num2,){
var sum = num1 + num2;
}
plus(1, 2, 3);

plus(1, 2, 3);の1と2は代入されるが3は捨てられる。
引数を指定されている数より少なく指定した場合

function plus(num1, num2,){
var sum = num1 + num2;
}
plus(1,);

plus(1, 2, 3);の1は代入されるがnum2は未定義値(undefined)が代入される。

関数は定義される前に呼び出しても実行される

add(10,20);
function add(a,b){
var c = a + b;
document.write(
a + '+' + b + "=" + c
);
}

関数の戻り値

関数事態に値を指定することができる。

var total = add(10,20);
function add(a,b){
var c = a + b;
return c;
}
console.log(total);

関数式

関数の定義と変数への代入を同時に行える。

var f  = function ababa(){
  var i = 1+1;
  return i;
}
//関数が実行される
console.log(f());
//fに格納されている関数が書き出される
console.log(f);

無名関数,匿名関数

関数名をつけない関数

var f = function(){
  document.write('無名関数');
}
f();

即時関数

(function(){ ... })() と書く。
無名関数を即実行できる。関数内で宣言された変数は関数の外に影響を及ぼさないのでローカルスコープができる。

スコープとは?

変数や関数が見える範囲

グローバルスコープ
プログラム中どこからでも見れる。
ローカルスコープ
関数の中だけで見れる。
ブロックスコープ
if や for などの {} で囲まれたブロックの中だけに限定されたスコープ。ただしjavascriptには存在しない。

即時関数の例

var a = 40;
(function (){
//即時関数の中では未定義なので undefined と返される。
  console.log(a);
  var a = 30;
//30と返される。
  console.log(a);
})();
//即時関数外で定義された値を参照するため40と返される。
  console.log(a);