TECH EXPERT 25日目 JavaScript 関数定義

JavaScriptの関数:Rubyでいうところのメソッド

 

関数宣言 Rubyの def と同じ

 

function 関数名(){ 処理 }   と記述することで関数を定義できる。

Rubyにおけるメソッドの定義と意味合いは同じ

 

(実例)

//関数宣言

function sayHello(){
console.log("こんにちは!")
}

sayHello()  #こんにちは!と出力

 

 

 

数値の場合は、関数の戻り値をreturnを用いて明示する必要あり

function calc(num1,num2){
return num1*num2;    
}

const num1 = 3;
const num2 = 4;
console.log(calc(num1,num2));  # 12が出力

 

関数式 # JavaScript における もう一つの関数定義方法

// 関数式
変数 = function( 仮引数 ){
// 関数内の処理
}

 

関数の定義方法が2種類ある。

関数式は変数が関数名になる感じ?→関数名がない無名関数というらしい

 

違いは Functionオブジェクトが生成されるタイミング

関数宣言は、宣言を含むスコープが実行されるまでにFunctionオブジェクトが生成される。対して関数式は、その式が実行されるときにFunctionオブジェクトが生成される。

 

下記関数に関わる構文

 

即時関数 # ()の中にfunctionからはじまる関数定義そのものを配置することで、その関数を即実行する構文

 

(function countNum(num) {
console.log(num);
})(1);

 

アロー関数 #functionの記述を省略し、その代わりに()=>という記述によって関数を定義する構文

 

const 変数名 = () => {
処理
}

 

実例

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

 

両方とも省略、効率化を図れる

 

 

まとめちゃん

関数定義の種類    特徴


関数宣言        標準的な関数の定義


無名関数        関数を多く使用するコードであるときに使用する。関数名の重複を避けることができる。


即時関数        流用する可能性のない関数を定義するときに使う。 別途関数を定義する手間がない
アロー関数       無名関数または即時関数において、より省略した記述をしたい時に使用する