const (JavaScript)

読み:コンスト
外語:const 英語
品詞:名詞

JavaScriptに3種類ある変数・定数宣言のうちの一つで、ブロックスコープの定数を宣言する。ECMAScript 2015 (ES6)から追加された。

目次

定数」を定義するために使う、一般的な宣言である。

但し実際には、読み取り専用の値を生成するためのもので、不変の値を保証するものではない。これはJavaScriptに限らず、他のプログラミング言語でも共通の認識である。

const name1 = value1 [, name2 = value2 [, ... [, nameN = valueN]]];

カンマで区切って1行に複数の変数を宣言できる。また、それぞれで初期値の定義が必須である。

不変ではない

constは英語のconstantの略で、意味は「定数」や「不変」である。

但し、JavaScriptの言語仕様として不変を保証するのは、再代入による変更ができず、再宣言もできないことだけで、「その内容」が変化しないことまでは保証していない。特に配列などのオブジェクトは内容が変化しうるので、constだからといって油断すると予期しないバグを招く。

const arr1 = ['AAA', 'BBB', 'CCC'];

const arr2 = arr1;

この時、実はarr1とarr2は同じオブジェクトを指している。またconstの配列も操作は可能である。結果、arr2に追加や削除をするとarr1も変化する。

arr2.pop();

console.log(arr1); // 出力は ['AAA', 'BBB'] となる

console.log(arr2); // 出力は ['AAA', 'BBB'] となる

こういった、変化しない配列をconstで持っておきたい時は、次のように concat() を使うと複製を作ることができる。

const arr1 = ['AAA', 'BBB', 'CCC'];

const arr2 = arr1.concat();

arr2.pop();

console.log(arr1); // 出力は ['AAA', 'BBB', 'CCC'] となる

console.log(arr2); // 出力は ['AAA', 'BBB'] となる

Firefoxでの実装

ECMAScript 2015 (ES6)策定の何年も前から、Mozilla FirefoxのJavaScriptエンジンSpiderMonkeyにはletとともにconstのサポートがあったことが知られる。しかしこのconstはvarと同様にグローバルスコープだった。

Mozilla Firefoxでも、ECMAScript 2015 (ES6)準拠のためにFirefox 44以降ではブロックスコープとなるよう仕様変更されている。

用語の所属
JavaScript
const
関連する用語
var (JavaScript)
let (JavaScript)

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club