今回はJavascriptの中でも応用的な文法を記事にしたいと思います。
- 関数式とアロー関数
JavaScriptでは、関数という特定の動作をまとめたものを作れます。通常の関数のほかに、「関数式」や「アロー関数」という書き方があります。
普通の関数:
function sayHello(name) {
return "Hello, " + name;
}
console.log(sayHello("Alice")); // "Hello, Alice"
関数式:
関数を変数に代入する形で作ることができます。普通の関数と同じように使えますが、関数の書き方が少し違います。
let sayHello = function(name) {
return "Hello, " + name;
};
console.log(sayHello("Bob")); // "Hello, Bob"
アロー関数:
アロー関数は、もっと短く書ける方法です。
let sayHello = (name) => "Hello, " + name;
console.log(sayHello("Charlie")); // "Hello, Charlie"
アロー関数は、コードをすっきりさせるために使います!
- 非同期処理とPromise
非同期処理とは、すぐに終わらない作業(例:サーバーからデータを取得するなど)を待っている間に他のことをやっておくための仕組みです。Promise(プロミス)というものを使って、非同期の作業が終わったかどうかを確認できます。
let promise = new Promise((resolve, reject) => {
let success = true;
if (success) {
resolve("成功しました!");
} else {
reject("失敗しました");
}
});
promise.then((message) => {
console.log(message); // "成功しました!"
}).catch((error) => {
console.log(error); // もしエラーがあったらここが実行される
});
ここでは、「成功」か「失敗」かが分かるまで他の作業を続けながら、成功したらメッセージを表示するというコードです。thenは成功したときの処理、catchは失敗したときの処理です。
- モジュール
JavaScriptでは、モジュールという機能を使って、コードを別のファイルに分けて整理できます。これにより、コードが大きくなっても、読みやすくなります。
モジュールの例:
// module.js ファイル
export const name = "Alice";
export function greet() {
console.log("Hello, " + name);
}
// main.js ファイル
import { name, greet } from './module.js';
console.log(name); // "Alice"
greet(); // "Hello, Alice"
module.jsというファイルで変数や関数を定義し、それを別のファイル(main.js)で使うことができます。コードを分割することで、管理が簡単になります!
- スプレッド構文と分割代入
スプレッド構文は、配列やオブジェクトの中身を簡単に取り出して、別の場所に使うための便利な書き方です。
スプレッド構文の例:
let arr1 = [1, 2, 3];
let arr2 = [...arr1, 4, 5]; // arr1の要素をそのまま使い、新しい配列を作る
console.log(arr2); // [1, 2, 3, 4, 5]
また、分割代入を使うと、オブジェクトや配列から値を簡単に取り出せます。
分割代入の例:
let person = { name: "Alice", age: 25 };
let { name, age } = person; // personのnameとageをそれぞれの変数に代入
console.log(name); // "Alice"
console.log(age); // 25
- 高階関数
高階関数は、他の関数を引数に取ったり、戻り値として返すことができる関数です。少し難しそうに聞こえますが、実際によく使うものです。たとえば、mapという配列のメソッドが高階関数です。
高階関数の例:
let numbers = [1, 2, 3, 4, 5];
let doubled = numbers.map(num => num * 2); // 配列のすべての要素を2倍にする
console.log(doubled); // [2, 4, 6, 8, 10]
mapは、配列の各要素に対して関数を実行して新しい配列を作ります。この場合、num => num * 2という関数を使って、全ての数字を2倍にしています。
まとめ
これでJavaScriptの応用文法について説明しました。もう一度おさらいしましょう:
関数式とアロー関数:関数をもっと簡単に書ける。
非同期処理とPromise:すぐに終わらない作業を待っている間に他の作業をする方法。
モジュール:コードを別ファイルに分けて整理できる。
スプレッド構文と分割代入:配列やオブジェクトの中身を簡単に扱う。
高階関数:他の関数を引数として扱える関数。