テックキャンプ59日目

kobasaです(´ω`*)日曜はJavaScriptにたどり着いたところまででした。
Rubyと似てるけどやっぱちょっと違いますね。混ざらないように勉強していきたいですね。

59日目の勉強内容

JavaScriptの関数について

関数とはrubyでいうメソッドのこと。引数がなくても()を記述する必要がある。
関数の定義方法はいくつか種類がある。

関数宣言

JavaScriptでは関数宣言は先に読み込まれるので、
関数宣言より前に関数を呼び出す記述を書いてもエラーにならない。

function 関数名(引数) {// 処理 }

hello() //JavaScriptでは関数宣言は先に読み込まれるのでエラーにならない。

function hello(){ //helloを関数宣言で定義
  console.log('hello')
}

関数式と無名関数

無名の関数を変数に定義または代入して定義する。
無名関数は関数名なしで関数を定義できるので、より簡潔なコードを記述できる。
また関数名の重複を避けることができるのもメリット。
ただし関数式で定義した場合は関数式よりも前に呼び出す記述をするとエラーになってしまう。

変数 = function(引数){// 関数内の処理 }
function(){}  // 無名関数と呼ばれる部分。

hello() //関数helloはまだ定義されていないのでここに記述するとエラーになる。

const hello = function(){ //helloを関数式で定義
  console.log('hello')
}

即時関数

()の中にfunctionから始まる関数定義そのものを配置することで、その関数を即実行できる。
関数を呼ぶ手間が省ける。流用する可能性のない関数を定義するときに使用する。

(function countNum(num){
  console.log(num)
})(1) //引数を渡してすぐに実行できる。呼び出す記述がない。

アロー関数

無名関数または即時関数で、functionの記述を省略し代わりに () =>という記述によって関数を定義する構文。更に記述を減らしたいときに使う。

const countNum = (num) => {
  console.log(num)
}
countNum(1)

変数の定義も3種類の記述方法がありましたが、関数定義にも種類があるんですねぇ。
あとはJavaScriptでは戻り値とする部分の頭に「return」を記述する必要があったり、
変数定義の最後に文章の終わりを意味する「;」を記述するが、省略できるといったルールがあります。慣れるまでちょい時間かかるかも。

コメント

タイトルとURLをコピーしました