🍍
[JavaScript]アロー関数 とは(備忘録)
1.はじめに
・アロー関数は、関数式の簡潔な代替構文として導入されました。
アロー関数を使用すると、コードをより短く読みやすくすることができます。
アロー関数の書き方の例
// 処理内容が1行の場合
const 変数名_1 = (引数1) => 処理内容;
// 処理内容が複数行に及ぶ場合
const 変数名_2 = (引数2) => {
処理内容
};
// 関数を呼び出す
変数名_1(引数1);
変数名_2(引数2);
2.サンプルプログラム
〇例1:
Sample_1.js
// 処理内容が1行の場合の書き方
const calc_1 = (size) => size * size;
// 処理内容が複数行に及ぶ場合の書き方
const calc_2 = (size) => {
return size * size
};
console.log(calc_1(5));
console.log(calc_2(5));
実行結果
25
25
〇例2:三項演算子とアロー関数を併用したプログラム
Sample_2.js
const score = prompt('0~15までの値を、数値のみで入力してください。', '');
// 入力内容を数値に変換
const modify_score = Number(score);
const chk =
(modify_score >= 16) ? () => console.log('0~15の値を入力してください') :
(modify_score >= 10) ? () => console.log('素晴らしい') :
(modify_score >= 5 && modify_score <= 9) ? () => console.log('普通') :
() => console.log('頑張ろう');
// アロー関数を呼び出す
chk();
〇例3:例2のプログラムをif/else if/else
を使用して修正
Sample_3.js
const score = prompt('0~15までの値を、数値のみで入力してください。', '');
// 入力内容を数値に変換
const modify_score = Number(score);
// アロー関数
const chk = (modify_score) => {
if (modify_score >= 16) {
console.log('0~15の値を入力してください');
} else if (modify_score >= 10) {
console.log('素晴らしい');
} else if (modify_score >= 5 && modify_score <= 9) {
console.log('普通');
} else {
console.log('頑張ろう');
}
};
// アロー関数を呼び出す
chk(modify_score);
3.アロー関数を使用する際の注意点-その1
アロー関数には this
等へのバインドがありません。
そのため、アロー関数をメソッドとして使用するのは適切ではありません。
Sample_1.js
const msg = {
name: '山田',
// メソッド
greet: () => {
console.log(`こんにちは、${this.name}です`);
}
};
msg.greet();
実行結果
こんにちは、undefinedです
4.アロー関数を使用する際の注意点-その2
アロー関数をコンストラクターとして使用することはできません。
new
をつけて呼び出すと、TypeError
が発生します。
Sample_1.js
const Member = (age, name) => {
this.age = age;
this.name = name;
};
// インスタンス生成
const member = new Member(25, '田中');
console.log({ age: member.age, name: member.name });
実行結果
TypeError: Member is not a constructor
Sample_2.js
const Member = function(age, name) {
this.age = age;
this.name = name;
};
// インスタンス生成
const member = new Member(25, '田中');
console.log({ age: member.age, name: member.name });
実行結果
{ age: 25, name: '田中' }
5.参考
・アロー関数式
・アロー関数の基本
・JavaScriptのアロー関数とは?コードをシンプルにするためのアロー関数の使い方
6.その他
・実行環境
Discussion