JavaScript配列定数
ECMAScript 2015(ES6)
2015年、JavaScriptは重要な新しいキーワードを導入しましたconst
。
以下を使用して配列を宣言することが一般的になっていますconst
。
例
const cars = ["Saab", "Volvo", "BMW"];
再割り当てできません
で宣言された配列はconst
再割り当てできません:
例
const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"]; // ERROR
配列は定数ではありません
キーワード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 | IE 11 / Edge | Firefox 36 | Safari 10 | Opera 36 |
Mar, 2016 | Oct, 2013 | Feb, 2015 | Sep, 2016 | Mar, 2016 |
宣言時に割り当てられる
JavaScriptconst
変数には、宣言時に値を割り当てる必要があります。
意味:で宣言された配列は、const
宣言時に初期化する必要があります。
const
配列を初期化せずに使用すると、構文エラーが発生します。
例
これは機能しません:
const cars;
cars = ["Saab", "Volvo", "BMW"];
で宣言された配列はvar
いつでも初期化できます。
宣言する前に配列を使用することもできます。
例
これで結構です:
cars = ["Saab", "Volvo", "BMW"];
var cars;
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 "Saab"
で宣言された配列に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 "Toyota"
ブロックスコープの詳細については、 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
}
完全なアレイリファレンス
完全な配列リファレンスについては、以下にアクセスしてください。
このリファレンスには、すべての配列プロパティとメソッドの説明と例が含まれています。