はじめに
JavaScriptを学習していく中で自分の為にメモを書き残しておきます。
今回は関数を格納した変数と、コールバック関数について。
関数を格納した変数
"use strict";
function nameSpace(lastName, firstName) { //スペースで結合の関数を作成
return lastName + " " + firstName; //lastNameとfirstNameの結合をreturn
}
function nameDot(lastName, firstName) { //ドットで結合の関数を作成
return lastName + "・" + firstName; //lastNameとfirstNameの結合をreturn
}
let lName = "柳生"; //lNameに代入
let fName = "十兵衛"; //fNameに代入
let nameList = [nameSpace, nameDot]; //nameListにそれぞれの関数を配列として代入
for(let func of nameList) { //forにてnameListをfuncに代入して処理
let name = func(lName, fName); //1回目、nameSpaceを処理、2回目nameDotを処理
console.log("結果: " + name); //1回目、2回目それぞれで結果を出力
}
出力結果"結果: 柳生 十兵衛""結果: 柳生・十兵衛"
コールバック関数
"use strict";
function nameSpace(lastName, firstName) { //スペースで結合の関数を作成
return lastName + " " + firstName; //lastNameとfirstNameの結合をreturn
}
function useNameSpace(name, func){ //nameには後述のnameItem、funcには上記のnameSpaceが入る
let fullName = func(...name); //funcに変数化された関数が入ることを想定。nameを可変長引数で記述し、それをfullNameに代入
console.log("結果 " + fullName); //結果を出力
}
let nameItem = ["柳生", "十兵衛"]; //nameItemに配列を代入
useNameSpace(nameItem, nameSpace);//useNameSpaceを呼び出し、nameItemを第1引数、nameSpace(関数)を第2引数として↑の処理を実行
出力結果"結果 柳生 十兵衛"
forEach
function printElement(currentValue, index, array) {
console.log((index + 1) + "個目の値: " + currentValue);
}
let list = [ 4, 31, 48, 6, 19];
list.forEach(printElement);
出力結果
"1個目の値: 4"
"2個目の値: 31"
"3個目の値: 48"
"4個目の値: 6"
"5個目の値: 19"
となりlist
の配列を順番に処理してくれる。
()内のcurrentValue, index, arrayはそれぞれ
currentValue = 処理中の配列内要素の値
index = 処理中の配列内要素のインデックス
array = 配列そのもの
となる。