let
と const
の違い
ES6で導入された let
と const
は、変数や定数を宣言するためのキーワードです。これらは従来の var
よりもスコープが限定されており、コードの可読性や安全性を向上させます。
let
- 再代入が可能で、ブロックスコープ(
{}
内)を持ちます。 - 再代入が必要な変数や、動的に値を変更する場合に使用します。
javascriptlet counter = 0; counter = 1; // 再代入可能
- 再代入が可能で、ブロックスコープ(
const
- 再代入が不可能で、値が変わらない定数を宣言するために使います。
- 基本的に変更しない値を扱うときは
const
を使うことで、誤って値を変更するリスクを防げます。
javascriptconst pi = 3.14; // pi = 3.14159; // エラーが発生する
テンプレートリテラル
テンプレートリテラルは、バッククォート `
を使って文字列を簡単に作成するための構文です。変数の埋め込みや改行を含む複雑な文字列を容易に扱うことができます。
変数の埋め込み
javascriptlet name = '太郎'; let greeting = `こんにちは、${name}さん!`; console.log(greeting); // 出力: こんにちは、太郎さん!
${}
を使うことで、文字列内に変数や式を簡単に埋め込むことができます。複数行の文字列
javascriptlet message = `このメッセージは 複数行にわたっています。`; console.log(message); // 出力: // このメッセージは // 複数行にわたっています。
分割代入とスプレッド構文
分割代入とスプレッド構文は、オブジェクトや配列の操作をより簡潔に行うための機能です。
分割代入 オブジェクトや配列から特定の値を簡単に取り出すことができます。
javascript// 配列の分割代入 let [a, b] = [1, 2]; console.log(a); // 出力: 1 console.log(b); // 出力: 2 // オブジェクトの分割代入 let person = { name: '花子', age: 25 }; let { name, age } = person; console.log(name); // 出力: 花子 console.log(age); // 出力: 25
スプレッド構文 スプレッド構文(
...
)は、配列やオブジェクトを展開してコピーしたり、結合したりするのに使われます。javascript// 配列の結合 let fruits = ['りんご', 'バナナ']; let moreFruits = [...fruits, 'オレンジ', 'ぶどう']; console.log(moreFruits); // 出力: ['りんご', 'バナナ', 'オレンジ', 'ぶどう'] // オブジェクトのコピー let original = { x: 1, y: 2 }; let copy = { ...original, z: 3 }; console.log(copy); // 出力: { x: 1, y: 2, z: 3 }
クラス (class
) の基本
クラスはオブジェクト指向プログラミングをサポートするために導入された構文で、オブジェクトの設計図として使われます。これにより、オブジェクトを生成しやすくし、コードの再利用性が高まります。
クラスの定義
javascriptclass Person { constructor(name, age) { this.name = name; this.age = age; } greet() { console.log(`こんにちは、${this.name}です。`); } } let taro = new Person('太郎', 30); taro.greet(); // 出力: こんにちは、太郎です。
constructor
メソッドはオブジェクトが生成されたときに呼び出され、初期化を行います。クラスの中にはメソッド(関数)を定義することができ、オブジェクトごとに共通の動作を実装できます。継承 クラスは他のクラスを継承することができ、コードの再利用や機能の拡張が容易になります。
javascriptclass Student extends Person { constructor(name, age, grade) { super(name, age); // 親クラスのコンストラクタを呼び出す this.grade = grade; } study() { console.log(`${this.name}は勉強しています。`); } } let hanako = new Student('花子', 22, 'A'); hanako.greet(); // 出力: こんにちは、花子です。 hanako.study(); // 出力: 花子は勉強しています。
extends
キーワードを使うことで、既存のクラスを基に新しいクラスを定義できます。super()
を使って親クラスのコンストラクタを呼び出し、基本的なプロパティを継承します。
ES6以降の新機能のまとめ
ES6で導入されたこれらの新機能は、JavaScriptのコーディングをより簡潔で効率的にし、コードの可読性や再利用性を高めます。let
と const
、テンプレートリテラル、分割代入とスプレッド構文、クラスなどを活用することで、よりモダンで使いやすいJavaScriptの記述が可能になります。