Movatterモバイル変換


[0]ホーム

URL:


CtrlK
このページ内

const

constはES6/TypeScriptで提供された非常に素晴らしい機能です。変数をイミュータブル(immutable)、つまり不変にすることができます。これは、可読性の面だけでなく実行時の面でも優れています。 constを使うには、単にvarの代わりにconstを使うだけです:

constfoo=123;

この構文は、let constant fooすなわち変数+動作指定子のようなものを入力させる他の言語よりも、ずっと優れています(個人的な意見です)。

constを使うことは、可読性とメンテナンス性のどちらの面でも良いことです。そして、マジックリテラル(謎の定数、マジックナンバーとも呼びます)を使うことを避けることができます。

// 可読性が低いコードですif (x>10) {}// このほうがベターですconstmaxRows=10;if (x> maxRows) {}

const宣言は初期化する必要があります

以下はコンパイルエラーになります:

constfoo;// ERROR: constの宣言は値を初期化する必要があります

代入の左辺に定数は置けない

作成された定数はイミュータブル(不変)です。したがって、新しい値を代入しようとするとコンパイルエラーになります:

const foo = 123;foo = 456; // ERROR: 代入の左側に定数を置くことはできません

ブロックスコープ

constletと同様にブロックスコープです:

const foo = 123;if (true) {    const foo = 456; // Allowed as its a new variable limited to this `if` block}

深い不変性 (deep immutability)

constは、変数の参照(reference)を保護する限りにおいて、オブジェクトリテラルでも機能します:

const foo = { bar: 123 };foo = { bar: 456 }; // ERROR : Left hand side of an assignment expression cannot be a constant

ただし、以下に示すように、オブジェクト内部のプロパティを変更することは可能です。

const foo = { bar: 123 };foo.bar = 456; // Allowed!console.log(foo); // { bar: 456 }

できるだけ const にしよう

後で変数の初期化を行ったり、再代入する予定が無いのであればconst を使いましょう(再代入する場合はlet を使います)。

最終更新

役に立ちましたか?


[8]ページ先頭

©2009-2025 Movatter.jp