6章関数を作る
#01関数の定義
let manufOrder = () => {
console.log(`忍者です。
本日、手裏剣3個製造をお願いします。`);
}
manufOrder();
組み込み関数 JavaScriptではじめから定義されていたもの いままで呼び出していたもの
アロー関数式
(引数) => {
関数で行う処理
}
引数を括弧で囲い、アロー「=>」 アロー関数式を代入文の右辺に書くことで、
一連の処理を行う関数を変数に代入することができる。
一度書いた処理を再利用できるというメリットがある
製造業者に発注内容を送るプログラムを書いている。
let manufOrder2 =(name) => {
console.log(`${name}様
忍者です。
本日、手裏剣3個の製造をお願いします。`);
}
manufOrder2(`服部`);
manufOrder2(`河村`);
アローの前のカッコの中に引数を書くと、呼び出し元から引数を受け取ります。
let manufOrder3 = (name2,order) => {
console.log(`${name2}様
忍者です。
本日、${order}の製造をお願いします。`);
}
manufOrder3(`服部`,`手裏剣3個`);
manufOrder3(`河村`,`まきびし4個`);
引数が二つ以上の場合
let getOrder = (shurikenNum,makibishiNum) => {
let orderText = '';
if (shurikenNum > 0) {
orderText += `手裏剣${shurikenNum}個`;
}
if (makibishiNum > 0) {
orderText += `まきびし${makibishiNum}個`;
}
return orderText;
}
let manufOrder4 = (name,order) => {
console.log(`${name}様
忍者です。
本日、${order}の製造をお願いします。`);
}
manufOrder4('服部',getOrder(3,0));
manufOrder4('河村',getOrder(1,4));
return文 戻り値として返したい値や式を書く
関数から戻り値を返すようにしておくと、複数の関数を組み合わせて使うことができる
余談?
famctionw記法を使っても関数を定義できる
関数宣言
function 関数名(引数) {
関数で行う処理
}
関数式がある
let 変数名 = function引数) {
関数で行う処理
};
#さまざまな引数02
let wokashi = (spring,summer,fall,winter) => {
console.log(`春は${spring} 夏は${summer}
秋は${fall} 冬は${winter}`)
}
実引数と仮引数の数が一致していなくてもエラーにはならない
let wokashi2 =(spring,summer,fall,winter='つとめて') =>{
console.log(`春は${spring} 夏は${summer}
秋は${fall} 冬は${winter}`);
}
値を指定がない引数はundefinedになる。 実引数が渡されなかった場合の仮引数の値
let introduceFriends = (...friends) => {
for (friend of friends) {
console.log(`${friend}は桃太郎の友達。`);
}
}
introduceFriends();
introduceFriends('犬');
introduceFriends('犬','猿','キジ')
関数の定義に最後の引数の前に...を付けると、0個以上の引数が配列にまとめられ、その仮引数に渡されれる。(残余引数)
引数として書いたすべての値が配列にまとめられ、仮引数friendsに渡される
#関数を引数として渡す03
let words = ['beutiful','big','strong'];
let result = words.filter((word) => word.length > 6);
console.log(result);
関数というオブジェクトを返す式 代入文の右辺にアロー関数式を書く→関数を変数に入れる
関数というオブジェクトは他の値と同じように変数に格納したり、引数として関数を渡したりできる。
関数を引数として受け取るものがある。例filterメソッド(フィルター)
真偽値を返す関数を引数として受け取るメゾッド trueの要素だけ配列で返す
let numbers = [1, 2, 3, 4, 5];
let squared = numbers.map(number => number ** 2);
console.log(squared);
mapメゾット もとの配列の要素に対して、受け取った関数を実行し、結果を新しい配列とする。
let square = (number) => {
return number ** 2;
}
let numbers2 = [1,2,3,4,5];
let squared2 = numbers2.map(square);
console.log(squared);
関数名をつけた関数を引数として渡す。オブジェクトとするときは()をつけない