ハッピーメモメモ

私的備忘録

【JavaScript】関数の定義

関数の定義(p66)

JavaScript では、関数は文、式どちらによっても定義できる

 

『文(Statement)』

・何らかの手続きを処理系に命令するもの

・変数に代入できない

例)ifは文であり、値として評価されない

f:id:n-moeko1966:20220309102225p:plain

HaskellScala のような関数型言語ではifは式である

 

『式(Expression)

・評価された後に値として存在するもの

・変数に代入できる

例)三項演算子による評価は式

f:id:n-moeko1966:20220309102316p:plain

 

関数宣言文と関数式(p67)

・推奨:const を使った関数式

 (関数宣言はvar による変数宣言と同じ問題を抱えている)

JavaScript における関数式とは実際のところ、Function オブジェクトを生成するリテラルである

f:id:n-moeko1966:20220309103645p:plain

 

第一級オブジェクト(First-Class Object)

・関数は配列や狭義のオブジェクトなどと同じく、Object を祖先に持ったオブジェクトである

JavaScript では関数は組み込みオブジェクトFunctionのインスタンスであり、第一級オブジェクトでもある

 

第一級オブジェクト

・他のオブジェクト型の値と同様に、変数へ代入したり、配列の要素やオブジェクトのプロパティ値にしたり、他の関数に引数として渡したり、別の関数の戻り値として設定できたりする

・オブジェクトのプロパティとなってる関数のことを『メソッド』と呼ぶ

 

 

 

 

参照:りあクト!【1.言語・環境編】