const

Did you know that you can read content offline by using one of these tools? If you would like to read offline MDN content in another format, let us know by commenting on Bug 665750.

Dash App

概要

読み取り専用の名前付き定数を宣言します。

実装されたバージョン JavaScript 1.5, NES 6.0 (Netscape 拡張、C エンジンのみ)
ECMAScript エディション 定義されていない(ES.next)

構文

const varname1 = value1 [, varname2 = value2 [, varname3 = value3 [, ... [, varnameN = valueN]]]];

引数

varnameN
定数名。正当な識別子なら、どんなものでもかまいません。
valueN
定数の値。 正当な式なら、どんなものでもかまいません。

説明

グローバルな、または内部でその定数が宣言された関数にローカルな定数を作成します。定数は、変数と同じスコープ規則に従います。

定数の値は再代入によって変更することができず、かつ定数が再度宣言されることはできません。このため、定数を初期化することなく宣言することは可能ですが、そうしても役に立たないでしょう。

定数は、同じスコープの中で関数または変数と名前を共有できません。

constMozilla 特有の拡張であり、IE ではサポートされていませんが、Opera ではバージョン 9.0 からサポートされました。

ブラウザ間の互換性

現在の const の実装は Mozilla 特有の拡張であり、ECMAScript5 の一部ではありません。これは Firefox および Chrome (V8) でサポートされています。Safari 5.1.7 や Opera 12.00 では、const で宣言しても、後から値を変更することができます。 また、Internet Explorer 6-10 ではサポートされていません。 const キーワードは現在、関数スコープ内で(var で変数を宣言するように)定数を宣言します。

Firefox のバージョン13以降では、定数を再度宣言すると TypeError を throw します。メジャーなブラウザでは定数に別の値を代入しても警告やエラーを出しません。そのような操作の返り値は新しく代入される値となりますが、Firefox や Chrome(バージョン20以降)では再代入は失敗します。

const は ECMAScript 6 で定義される予定ですが、意味が異なります。let で宣言された変数と同じように、const で宣言された定数はブロックスコープとなります。

次の例は、"a は 7 です" という文字列をコンソールに出力します。

const a = 7;
console.log("a は " + a + " です");

関連情報

タグ (2)