javascript エラー「Uncaught TypeError: Assignment to constant variable.」の原因
- 作成日 2020.10.21
- 更新日 2022.08.04
- javascript
- javascript
chromeでエラー「Uncaught TypeError: Assignment to constant variable.」が発生する原因と解決方法を記述をしてます。
環境
- OS windows10 pro 64bit
- Apache 2.4.43
- ブラウザ chrome 103.0.5060.114
エラー内容
chrome103にて、以下のエラーが発生
Uncaught TypeError: Assignment to constant variable.
発生したコード
※その他の発生パターンは後述してます。
const num = 0;
num = 7;
console.log(num);
firefox102の場合は以下となります。
Uncaught TypeError: invalid assignment to const 'num'
IE11の場合は以下となります。
SCRIPT1055: const への代入
原因
constで、定数にしたものに値を代入しようとしたため
解決方法
値を代入するのであれば、「let」 か 「var」を使用します。
let num = 0;
num = 7;
console.log(num);
もしくは別の定数を用意して、そこに代入します。
const num = 0;
const another_num = 7 + num;
console.log(another_num); // 7
どうしても同じ変数名にしたい場合は、関数などを使用してスコープを変更します。
const num = 0;
function f() {
const num = 7
console.log(num)
}
f() // 7
その他
オブジェクトの値を操作
オブジェクトに、値を再割り当てすると同じエラーが発生します。
const obj = {
name: 'hoge',
};
// 直接変更は可能
obj.name = 'foo';
console.log(obj); // {name: 'foo'}
// 再割り当てするとエラーが発生
obj = {name: 'bar'};
console.log(obj); // Uncaught TypeError: Assignment to constant variable.
こちらも「let」か「var」を使用することが解決します。
let obj = {
name: 'hoge',
};
obj.name = 'foo';
console.log(obj); // {name: 'foo'}
obj = {name: 'bar'};
console.log(obj); // {name: 'bar'}
ちなみに、配列は操作可能です。
const arr = ['hoge'];
arr[0] = 'foo';
console.log(arr); // ['foo']
if文に使用
「const」を使用して「if」文に「=」が足らない場合も発生します。
const num = 0;
if(num = 0){ console.log(num) }
// Uncaught TypeError: Assignment to constant variable.
「==」か「===」を使用すれば解決します。
const num = 0;
if(num == 0){ console.log(num) }
// 0
-
前の記事
C# listBoxの値を全て削除する 2020.10.21
-
次の記事
SQL server2017 サーバー移行時にメンテナンスプランが実行エラーになる 2020.10.21
コメントを書く