JavaScriptの基本文法の忘備録として、関数(function)についてまとめてみました。
関数|functionの使い方
変数のletやconstだけで計算式を作ると面倒です。
そこで、これを楽にする関数functionの登場です。
下に円の面積を求める式を作ってみて、関数を使ってないバージョンと使ったバージョンで比べてみます。
まず、関数を使わない場合、下の変数宣言を毎回全部書く必要があります。
let radius = 5 //半径の変数宣言
const pai = 3 //円周率の変数宣言
const area = radius * radius * pai //面積の計算式の変数宣言
console.log(area) //命令
75 //結果
次に、関数functionを使った場合は、calCircleArea(引数)を書くだけで計算ができます。
function calCircleArea(radius){ /関数calCircleArea(radius)
const pai = 3 //円周率paiの変数宣言
const area = radius * radius * pai //面積areaの変数宣言
return area
}
calCircleArea(5) //命令(半径5)
75 //結果(半径5)
calCircleArea(9) //命令(半径9)
243 //結果(半径9)
関数 functionの重要な概念
functionの後ろの()の中の値を引数(ひきすう)、
function()で得られた値を返り値といいます。
また、returnの値に戻り値を書くことで関数の呼び出し元に値を返します。
下の関数名calCircleArea(5)の例では、引数は5、返り値は75になる。
function calCircleArea(radius){ //関数名: calCircleArea, 引数: radius(半径)
const pai = 3 //変数宣言:pai(円周率)
const area = radius * radius * pai //変数宣言:area(面積)
return area //戻り値::area(面積)
}
calCircleArea(5) //命令(半径5:引数)
75 //結果(返り値)
関数の別の書き方
関数には書き方には上で紹介した他に幾つか種類があります。
関数式で関数を定義する
const 変数名 = function(引数) { 処理 }
const CircleArea = function (radius) { //変数名: CircleArea, 引数: radius(半径)
const pai = 3 //変数宣言:pai(円周率)
const area = radius * radius * pai //変数宣言:area(面積)
return area //戻り値:area(面積)
}
CircleArea(5) //命令:引数5の場合の面積
75 //返り値
CircleArea(9) //命令
243 //返り値
CircleArea(23) //命令
1587 //返り値
アロー関数式で関数を定義する
const 変数名 = (引数) => {処理}
const CircleArea = (radius) => { //変数名: CircleArea, 引数: radius(半径)
const pai = 3 //変数宣言:pai(円周率)
const area = radius * radius * pai //変数宣言:area(面積)
return area //戻り値:area(面積)
}
CircleArea(5) //命令:引数5の場合の面積
75 //返り値
CircleArea(9) //命令
243 //返り値
CircleArea(23) //命令
1587 //返り値
引数を入れなくても良い関数
関数には引数を入れなくても良い場合もあります。
function showMessage () { //関数名: calCircleArea, 引数: なし
console.log("こんにちは")
console.log("さようなら")
}
showMessage() //命令
こんにちは //返り値
さようなら //返り値
複数の引数を使う場合はカンマで区切る
function(第1引数, 第2引数){処理}
function name(lastName, firstName){
console.log(`${firstName} ${lastName}`)
}
name('山田', '花子') //命令
山田 花子 //返り値
functionの内側と外側の変数の使用範囲
関数functionの内側・外側で宣言された変数は使える範囲がそれぞれ違いますので、具体例で見ていきましょう。
functionの中で宣言された変数は外側で使えない
function evening () {
const message2 = "こんばんわ" //変数宣言:message2(functionの内側で)
}
evening (message2) //命令:引数(message2)
ReferenceError{ message2 is not defined } //エラー発生
functionの外側で宣言された変数は内側で使える
const message2 = "こんばんわ" //変数宣言:message2(functionの外側で)
function hello () {
console.log(message2) //function外側で宣言した変数message2を内側で使用
}
hello () //命令
こんばんわ //返り値
let message //変数名だけ宣言:message(functionの外側で)
function say() {
message = "hello" //function外側で宣言した変数名messageに、内側で値を代入
}
say()
console.log(message) //命令
hello //返り値