最低限の知識一応あるけど、復習も兼ねて書いてみることにするの巻その④
関数宣言と関数式(超ざっくり)
- 関数式
- 実行が関数式に到達された時に作成される。その後から使用できる。
- if文外で変数宣言⇨if文内で関数式を使用して代入する⇨あとで使える
- 関数宣言
- スクリプト/コードブロック全体で使用できる。
- 関数宣言は関数式より早く使えるようになる
- ブロック外だと使えない
アロー関数
アロー関数で書くと...
let func = (arg1, arg2, ...argN) => expression
同じのを関数式で書くと...
let func = function(arg1, arg2, ...argN) {
return expression;
}
使ってみよう!こんな感じ。
let sum = (a, b) => a + b;
/* アロー関数は次よりも短い形式です:
let sum = function(a, b) {
return a + b;
};
*/
alert( sum(1, 2) ); // 3
引数一つならかっこ省略でもっと短く。
// 次と同じです
// let double = function(n) { return n * 2 }
let double = n => n * 2;
alert( double(3) ); // 6
引数なしならかっこは必須。
let sayHi = () => alert("Hello!");
sayHi();
アロー関数は引数式と同じように使用できる。
let age = prompt("What is your age?", 18);
let welcome = (age < 18) ?
() => alert('Hello') :
() => alert("Greetings!");
welcome(); // ok now
複数行のアロー関数
let sum = (a, b) => { // 波括弧を使って複数行の関数を書けます
let result = a + b;
return result; // 波括弧を使った場合、結果を得るには return を使います
};
alert( sum(1, 2) ); // 3
雑になってしまった....
ちゃんと書けるようになって理解したら書き直そうかね。