「JavaScript/変数」の版間の差分
削除された内容 追加された内容
→変数のスコープ: s/変数が値を保持する範囲/変数が参照可能な範囲/;宣言・初期化・代入の区別を明確にした。 |
→定数: strict モードでなくても const の初期化は必須であり、再代入は SyntaxError。 |
||
219 行
定数(ていすう)は<code>const</code>キーワードで宣言します。
数学において、定数(ていすう)とは
JavaScriptにおける定数は、宣言と同時に代入しなければならず、値は変更できません。▼
<syntaxhighlight lang="html5">▼
const E; // SyntaxError: Missing initializer in const declaration
</syntaxhighlight>
const で宣言された変数(定数)のスコープは let で宣言された変数と同じ'''ブロックスコープ'''を取ります。
定数はスコープ
<syntaxhighlight lang="html5">▼
const E = 3;
E = 2.7; // TypeError: Assignment to constant variable.
</syntaxhighlight>
定数名は全て大文字でアンダーバーで単語を区切り、<code>const CONSTANT_VALUES_LIKE_THIS</code>のようにスネークケースで書く慣習があります(ここで述べているのは習慣で、識別名として妥当であれば任意の変数名でconst変数宣言が出来ます)。▼
▲定数名は全大文字で、<code>const CONSTANT_VALUES_LIKE_THIS</code>のようにスネークケースで書く慣習があります。
constと宣言された定数への代入は SyntaxError を throw します。
267 ⟶ 245行目:
</syntaxhighlight>
const は定数を宣言しますが、
<syntaxhighlight lang="javascript" line>
const ary1 = [1,2,3];
274 ⟶ 252行目:
console.log(ary); // 1,abc,3
</syntaxhighlight>
# 変数 ary1 に配列インスタンスで初期化
# 変数 ary2 に ary1 を初期化したインスタンスで初期化
# 定数な筈のaryの要素を書き換え(ary1を初期化したインスタンスの要素の書き換え)。
== 変数のスコープ ==
|