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)
両方とも省略、効率化を図れる
まとめちゃん
関数定義の種類 特徴
関数宣言 標準的な関数の定義
無名関数 関数を多く使用するコードであるときに使用する。関数名の重複を避けることができる。
即時関数 流用する可能性のない関数を定義するときに使う。 別途関数を定義する手間がない
アロー関数 無名関数または即時関数において、より省略した記述をしたい時に使用する