こんにちは、フロントエンドエンジニアのてりーです。
目次
関数とは
一連の手続きを1つの処理にまとめた物。
関数を使うことによって、毎回同じ処理を書かずとも、その関数を呼び出すことによって同じ処理を実行できる。
例
//関数宣言
//引数に+1をするfunctionを作る
function increments(n){
return n+1
}
//呼び出し
//incrementsを呼び出すと()に入れた引数に+1する処理を毎回してくれる。
console.log(increments(5)) //6
console.log(increments(1)) //2
JavaScriptの関数の定義は2パターン
JavaScriptの関数には「式」と「文」のどちらかで定義する。
式:評価された後に値として存在するもの。
式を評価する事で、結果として評価値を返す。
式は評価した結果を変数に代入できる。
// 1 + 1という式の評価値を表示
console.log(1 + 1);
// => 2
// 式の評価値を変数に代入
const total = 1 + 1;
// 関数式の評価値(関数オブジェクト)を変数に代入
const fn = function() {
return 1;
};
// fn() という式の評価値を表示
console.log(fn()); // => 1
文:何らかの手続きを処理系に命令するもの。
処理する1ステップが1つの文である。;で1文ごとに区切る。
ifやforなどが文としてよく使われている。
const isTrue = true;
if (isTrue) {
処理
}
文は変数に代入できない!!その為、下はエラーが出る
// 構文として間違っているため、SyntaxErrorが発生する
const forIsNotExpression = if (true) { 処理 }
アロー関数と無名関数
アロー関数式
ES2015で導入されてから、スッキリしてい見やすい為、急速に普及している記法。
アロー関数式では以下の省略ができる。
・引数がひとつだけの場合はカッコが省略できる
・本文が return 文だけのときは、return 文をブロックごと省略できる
省略例
const plusOne = function (n) {
return n + 1;
}
// アロー関数式()
const addOne = (n) => {
return n + 1;
};
// アロー関数式 省略
const increment = n => n + 1;
無名関数
名前がない関数。匿名関数とも呼ばれる。
宣言された関数は生まれた時点から名前を持つのが基本である。
関数の名前はFunction インスタンスとしての name プロパティに格納されてる。
function mercury() {}
mercury.name
//宣言文で定義した関数の名前 'mercury'
const fn = function mars() {};
fn.name
// 関数式で定義した関数の名前 'mars'
もし名前を書かなかった場合(無名関数)は変数の名前が関数の名前になる。
const venus = function () {
console.log('I am Venus!');
};
venus();
//I am Venus!
venus.name
//'venus'
//functionに名前がない為、変数名のvenusが関数の名前になっている。