😊
【JavaScript Primer】関数と宣言(JavaScript Primerより)
関数と宣言
Rest parameters
可変長変数を引数に使える
function fn(...args) {
// argsは引数の値が順番に入った配列
console.log(args); // => ["a", "b", "c"]
}
fn("a", "b", "c");
// 非推奨
function fn() {
// `arguments`はインデックスを指定して各要素にアクセスできる
console.log(arguments[0]); // => "a"
console.log(arguments[1]); // => "b"
console.log(arguments[2]); // => "c"
}
fn("a", "b", "c");
関数はオブジェクト
function fn() {
console.log("fnが呼び出されました");
}
// 関数`fn`を`myFunc`変数に代入している
const myFunc = fn;
myFunc();
Arrow Function
Arrow Functionで問題ない場合はArrow Functionで書き、そうでない場合はfunctionキーワードを使うことを推奨します。
// 仮引数の数と定義
const fnA = () => { /* 仮引数がないとき */ };
const fnB = (x) => { /* 仮引数が1つのみのとき */ };
const fnC = x => { /* 仮引数が1つのみのときは()を省略可能 */ };
const fnD = (x, y) => { /* 仮引数が複数のとき */ };
// 値の返し方
// 次の2つの定義は同じ意味となる
const mulA = x => { return x * x; }; // ブロックの中でreturn
const mulB = x => x * x; // 1行のみの場合はreturnとブロックを省略できる
コールバック関数
このように関数が値として扱えることを、ファーストクラスファンクション(第一級関数)と呼びます。
const array = [1, 2, 3];
array.forEach((value) => {
console.log(value);
});
// ↑は引数にArrow funtion(関数)を渡している=コールバック関数
const output = (value) => {
console.log(value);
};
Discussion