【JavaScript】関数の定義
関数の定義(p66)
JavaScript では、関数は文、式どちらによっても定義できる
『文(Statement)』
・何らかの手続きを処理系に命令するもの
・変数に代入できない
例)ifは文であり、値として評価されない
※Haskell やScala のような関数型言語ではifは式である
『式(Expression)
・評価された後に値として存在するもの
・変数に代入できる
例)三項演算子による評価は式
関数宣言文と関数式(p67)
・推奨:const を使った関数式
(関数宣言はvar による変数宣言と同じ問題を抱えている)
・JavaScript における関数式とは実際のところ、Function オブジェクトを生成するリテラルである
第一級オブジェクト(First-Class Object)
・関数は配列や狭義のオブジェクトなどと同じく、Object を祖先に持ったオブジェクトである
・JavaScript では関数は組み込みオブジェクトFunctionのインスタンスであり、第一級オブジェクトでもある
第一級オブジェクト
・他のオブジェクト型の値と同様に、変数へ代入したり、配列の要素やオブジェクトのプロパティ値にしたり、他の関数に引数として渡したり、別の関数の戻り値として設定できたりする
・オブジェクトのプロパティとなってる関数のことを『メソッド』と呼ぶ
参照:りあクト!【1.言語・環境編】