JavaScript 配列定数
ECMAScript 2015(ES6)
2015年、JavaScriptは新しいキーワードconst
を導入しました。
const
を使用して配列を宣言するのが一般的な方法になりました。
再割り当て不可
const
で宣言された配列は再割り当てできません。
配列は定数ではない
const
少し誤解を招きます。
定数配列を定義しません。配列への定数参照を定義します。
このため、定数配列の要素を変更できます。
要素を再割り当て可能
定数配列の要素を変更できます。
例
// You can create a constant array:
const cars = ["Saab", "Volvo", "BMW"];
// You can change an element:
cars[0] = "Toyota";
// You can add an element:
cars.push("Audi");
ブラウザのサポート
const
は Internet Explorer10以前ではサポートされていません。
次の表は、const
をサポートしているブラウザです。
Chrome 49 | IE11/Edge | Firefox 36 | Safari 10 | Opera 36 |
2016年3月 | 2013年10月 | 2015年2月 | 2016年9月 | 2016年3月 |
宣言時に割り当て
JavaScriptのconst
変数は、宣言時に値を割り当てる必要があります。
const
で宣言された配列は宣言時に初期化する必要があります。
const
は配列を初期化しないと、構文エラーになります。
例
これは機能しません:
const cars;
cars = ["Saab", "Volvo", "BMW"];
var
で宣言された配列はいつでも初期化できます。
宣言する前に配列を使用することもできます。
Constブロックのスコープ
const
で宣言された配列はブロックスコープを持っています。
ブロック内で宣言された配列は、ブロック外で宣言された配列と同じではありません:
例
const cars = ["Saab", "Volvo", "BMW"];
// Here cars[0] is "Saab"
{
const cars = ["Toyota", "Volvo", "BMW"];
// Here cars[0] is "Toyota"
}
// Here cars[0] is <b>"Saab"</b>
var
で宣言された配列にはブロック・スコープがありません:
例
var cars = ["Saab", "Volvo", "BMW"];
// Here cars[0] is "Saab"
{
var cars = ["Toyota", "Volvo", "BMW"];
// Here cars[0] is "Toyota"
}
// Here cars[0] is <b>"Toyota"</b>
ブロックスコープの詳細については、JavaScript スコープ
を参照してください。
配列の再宣言
var
で宣言された配列の再宣言はプログラム内のどこでも使用できます。
例
var cars = ["Volvo", "BMW"]; // Allowed
var cars = ["Toyota", "BMW"]; // Allowed
cars = ["Volvo", "Saab"]; // Allowed
const
配列の再宣言または再割り当て、同じスコープまたは同じブロックでは許可されていません。
例
var cars = ["Volvo", "BMW"]; // Allowed
const cars = ["Volvo", "BMW"]; // Not allowed
{
var cars = ["Volvo", "BMW"]; // Allowed
const cars = ["Volvo", "BMW"]; // Not allowed
}
既存のconst
再宣言または再割り当て同じスコープまたは同じブロック内の配列は許可されていません。
例
const cars = ["Volvo", "BMW"]; // Allowed
const cars = ["Volvo", "BMW"]; // Not allowed
var cars = ["Volvo", "BMW"]; // Not allowed
cars = ["Volvo", "BMW"]; // Not allowed
{
const cars = ["Volvo", "BMW"]; // Allowed
const cars = ["Volvo", "BMW"]; // Not allowed
var cars = ["Volvo", "BMW"]; // Not allowed
cars = ["Volvo", "BMW"]; // Not allowed
}
const
で配列を再宣言する場合、別のスコープまたは別のブロックで許可されます。
例
const cars = ["Volvo", "BMW"]; // Allowed
{
const cars = ["Volvo", "BMW"]; // Allowed
}
{
const cars = ["Volvo", "BMW"]; // Allowed
}
完全な配列リファレンス
配列の完全なリファレンスについては、完全な JavaScript 配列リファレンスを参照してください。
このリファレンスには、配列のすべてのプロパティとメソッドの説明と例が含まれています。
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。