LoginSignup
1
0

More than 3 years have passed since last update.

【JavaScript】constで宣言した配列の値は変えられるのか?(→変えられる)

Last updated at Posted at 2020-05-16

結論

タイトルの答えは「YES。変えられる。」

理由

JavaScriptでconstの配列の値が変わる理由」という記事を読んだところ、

constの値は不変ということではなく、変数識別子が再代入できないというだけだからだ。

というのが結論だったが、実際の挙動も確かめたかったので手を動かしてみた。

実行できるパターン

1.インデックスを指定した値の代入

const arr1 = [];
arr1[0] = 'a';
console.log(arr1);

// 実行結果
// [ 'a' ]

2. 要素の追加

const arr2 = [];
arr2.push('b');
console.log(arr2);

// 実行結果
// ['b']

3.要素の削除

const arr3 = [1, 2, 3];
arr3.splice(1, 1);
console.log(arr3);

// 実行結果
// [ 1, 3 ]

4. 参照している配列への要素の追加

const arr4 = [1, 2, 3];
const arr5 = arr4;
arr5[0] = 'c';
console.log(arr4);
console.log(arr5);

// 実行結果
// ['c', 2, 3]
// ['c', 2, 3]

実行できないパターン

配列自体への再代入

const arr6 = [1, 2, 3];
arr6 = [4, 5, 6];

// 実行結果
// arr6 = [4, 5, 6];
//      ^
//   TypeError: Assignment to constant variable.

まとめ

配列の中身の操作や再代入に関しては、要素を追加しようが消そうが怒られることなく実行できた。
ただし「配列それ自体への再代入」はできなかった。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0