Node.js JavaScript 要件
1. クイックスタート
JavaScriptが初めての方でも、心配はいりません!
Node.jsに飛び込む前に知っておくべき主要なコンセプトを、シンプルなコード例とともに紹介します。
1.1 自分で試してみる
これらの例は、ブラウザのコンソールで直接実行するか、Node.jsを使用して .js ファイルとして実行することができます。
2. JavaScriptの基本概念
Node.jsを開始する前に、以下のJavaScriptコンセプトに慣れておく必要があります。
- Variables(変数)
- Functions(関数)
- Objects(オブジェクト)
- Arrays(配列)
- Asynchronous programming(非同期プログラミング:コールバック、プロミス、async/await)
- ES6+ features(ES6以降の機能)
このページでは、Node.js開発に必要なエッセンシャルなJavaScriptの概念を短い例で紹介します。より深く学びたい場合は、当サイトのJavaScriptチュートリアルを参照してください。
3. 変数と関数
Node.jsサーバーを構築する際、変数の宣言と関数の定義は基本中の基本です。
// 変数 (let, const, var)
let name = 'Node.js';
const version = 20;
// 関数の宣言 (Function declaration)
function greet(user) {
return `Hello, ${user}!`; // テンプレートリテラル (ES6)
}
// アロー関数 (Arrow function - ES6+)
const add = (a, b) => a + b;
console.log(greet('Developer')); // Hello, Developer!
console.log(add(5, 3)); // 84. オブジェクトと配列
データを構造化して管理するために、オブジェクトと配列を多用します。
// オブジェクト (Object)
const user = {
name: 'Alice',
age: 25,
greet() {
console.log(`Hi, I'm ${this.name}`);
}
};
// 配列 (Array)
const colors = ['red', 'green', 'blue'];
// 配列メソッド (Array methods - ES6+)
colors.forEach(color => console.log(color));
const lengths = colors.map(color => color.length);5. 非同期JavaScript
Node.jsの最大の特徴は非同期処理です。I/O(入出力)待ちの時間を有効活用するために、以下のパターンを理解する必要があります。
// 1. コールバック (従来のパターン)
function fetchData(callback) {
setTimeout(() => {
callback('データを受け取りました!');
}, 1000);
}
// 2. プロミス (Promises - ES6+)
const fetchDataPromise = () => {
return new Promise((resolve) => {
setTimeout(() => resolve('プロミスが解決されました!'), 1000);
});
};
// 3. async/await (ES8+)
async function getData() {
const result = await fetchDataPromise();
console.log(result);
}
getData(); // 非同期関数の実行6. 分割代入とテンプレートリテラル (ES6+)
モダンなJavaScriptでは、コードを簡潔に書くための構文が用意されています。
// オブジェクトの分割代入 (Destructuring)
const { name } = user;
console.log(`Hello, ${name}!`); // テンプレートリテラル7. 主要なJavaScriptコンセプト
- Variables:
let(再代入可能)、const(再代入不可)、var(古い形式) - Functions: 通常の関数、アロー関数、およびメソッド
- Objects & Arrays: データを整理するためのデータ構造
- Modules:
require()(CommonJS)およびimport/export(ES6) - Error Handling:
try/catchブロックによる例外処理
8. クイックリファレンス表
Node.jsの各バージョンにおける主要機能のサポート状況です。
| 機能 | Node.js サポート |
|---|---|
| let / const | はい (Node 6+ 以降) |
| アロー関数 (Arrow Functions) | はい (Node 4+ 以降) |
| 分割代入 (Destructuring) | はい (Node 6+ 以降) |
| テンプレートリテラル | はい (Node 4+ 以降) |
| プロミス (Promises) | はい (Node 0.12+ 以降) |
| async/await | はい (Node 7.6+ 以降) |