「JavaScript/変数」の版間の差分
削除された内容 追加された内容
編集の要約なし |
→const: Fix bug タグ: 2017年版ソースエディター |
||
103 行
== const ==
<code>const</code>キーワードで変数を宣言すると、その値は初期化の時以外は書き換えられず「定数」として振る舞います。
:<syntaxhighlight lang="javascript">
const E; // SyntaxError: Missing initializer in const declaration
</syntaxhighlight>
110 行
定数はスコープの全域で使われる不変な値に対して用いられスコープの冒頭で宣言されるのが典型的な使われ方です。
:<syntaxhighlight lang="javascript">
const E = 3;
117 行
</syntaxhighlight>
const obj = { a: 1, b: 2};
131 ⟶ 130行目:
constと宣言された定数への代入は SyntaxError を throw します。
:<syntaxhighlight lang="javascript">
const x = 12;
const y = x * 2; // 初期化には既知の値のみで組み立てられた式が使える
138 ⟶ 137行目:
<code>const</code> は定数を宣言しますが、Arrayオブジェクトや Objectオブジェクトのような複合的なオブジェクト(コレクション)の要素の変更は妨げません。<!--混乱するのでObject.seal() メソッドやObject.freeze()メソッドには触れなかった。-->
:<syntaxhighlight lang="javascript" line>
const ary1 = [1,2,3];
const ary2 = ary1;
ary2[1] = "abc";
console.log(
</syntaxhighlight>
# 変数 <var>ary1</var>
# 変数 <var>ary2</var>
# 定数な筈の
# 書き換えたのは <var>ary2</var> の1番めの要素なのに、<var>ary1</var> の要素が書き換わっている。これは、2行目で<var>ary2</var> を<var>ary1</var> で初期化しているためで、この時 <var>ary2</var> は <var>ary1</var> の別名になっています。
{{コラム|JavaScriptにおける「定数」とは
「定数」を「変数」の特殊なものに分類するのは、数学的には違和感を感じる人もいるかもしれないがプログラミングでは便宜上このように分類します。
プログラミングでいう「変数」とは、
}}
|