From c43ef332c9395963ad974bcf8850bdac79f7c55c Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Sat, 12 Jun 2021 03:10:39 +0900 Subject: Web/JavaScript/Reference/Errors/I-J* を更新 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 2021/06/11 時点の英語版に同期 --- .../errors/invalid_const_assignment/index.html | 48 +++++++++++----------- 1 file changed, 25 insertions(+), 23 deletions(-) (limited to 'files/ja/web/javascript/reference/errors/invalid_const_assignment') diff --git a/files/ja/web/javascript/reference/errors/invalid_const_assignment/index.html b/files/ja/web/javascript/reference/errors/invalid_const_assignment/index.html index e446935a23..2ce876cb25 100644 --- a/files/ja/web/javascript/reference/errors/invalid_const_assignment/index.html +++ b/files/ja/web/javascript/reference/errors/invalid_const_assignment/index.html @@ -2,34 +2,36 @@ title: 'TypeError: invalid assignment to const "x"' slug: Web/JavaScript/Reference/Errors/Invalid_const_assignment tags: - - Error - - Errors - - JavaScript - - TypeError +- Error +- JavaScript +- TypeError translation_of: Web/JavaScript/Reference/Errors/Invalid_const_assignment ---
{{jsSidebar("Errors")}}
-

メッセージ

+

JavaScript の例外 "invalid assignment to const" は、定数を変更しようとしたときに発生します。 JavaScript の const で宣言すると、再代入野菜宣言を行うことができません。

-
TypeError: invalid assignment to const "x" (Firefox)
+

エラーメッセージ

+ +
TypeError: invalid assignment to const "x" (Firefox)
 TypeError: Assignment to constant variable. (Chrome)
-TypeError: Redeclaration of const 'x' (IE/Edge)
+TypeError: Assignment to const (Edge)
+TypeError: Redeclaration of const 'x' (IE)
 

エラータイプ

{{jsxref("TypeError")}}

-

何がうまくいかなかったのか??

+

エラーの原因

定数は、通常の実行中にプログラムによって変更できない値です。再代入も再宣言もできません。JavaScript では、定数を const キーワードで宣言します。

-

無効な再宣言

+

無効な再宣言

-

同じブロックスコープで同じ定数名に値を代入すると、エラーがスローされます。

+

同じブロックスコープで同じ定数名に値を代入すると、エラーが発生します。

const COLUMNS = 80;
 
@@ -37,20 +39,20 @@ TypeError: Redeclaration of const 'x' (IE/Edge)
 
 COLUMNS = 120; // TypeError: invalid assignment to const `COLUMNS'
-

エラーを修正

+

エラーの修正

エラーを修正するには、複数の選択肢があります。問題となっている定数で、達成しようとしていたことを確認してください。

-

リネーム

+

名前の変更

-

ほかの定数を宣言するつもりだったならば、ほかの名前を選んで、リネームしてください。この定数名はすでにこのスコープで使用されています。

+

ほかの定数を宣言しようとしていたのであれば、ほかの名前を選んで名前を変更してください。この定数名は、すでにこのスコープで使用されています。

const COLUMNS = 80;
 const WIDE_COLUMNS = 120;
-

constletvar?

+

constletvar

-

定数を宣言するつもりがなかったのなら、const を使用しないでください。ブロックスコープの変数なら、let で、グローバルスコープの変数なら var で宣言してください。

+

定数を宣言するつもりがなかったのであれば、 const を使用しないでください。ブロックスコープの変数であれば let で、グローバルスコープの変数であれば var で宣言してください。

let columns = 80;
 
@@ -59,9 +61,9 @@ const WIDE_COLUMNS = 120;
let columns = 120;
-

スコープ

+

スコープ

-

正しいスコープにあるか確認してください。たとえば、この定数はこのスコープにあるべきなのでしょうか?それとも関数にあるべきなのでしょうか?

+

正しいスコープにあるか確認してください。たとえば、この定数はこのスコープにあるべきなのでしょうか。それとも関数にあるべきなのでしょうか。

const COLUMNS = 80;
 
@@ -69,15 +71,15 @@ function setupBigScreenEnvironment() {
   const COLUMNS = 120;
 }
-

const と不変性

+

const と不変性

-

const 宣言は、値への読み取り専用参照を作成します。それが保持している値が不変であることを意味するものではなく、単に変数識別子を再割り当てできないだけです。たとえば、コンテンツがオブジェクトである場合、オブジェクト自体は依然として変更可能であることを意味します。 つまり、変数に格納されている値を変更することはできません:

+

const 宣言は、値への読み取り専用の参照を作成します。それが保持している値が不変であることを意味するものではなく、変数識別子に再代入できないだけです。たとえば、コンテンツがオブジェクトである場合、オブジェクト自体はまだ変更可能であることを意味します。 つまり、変数に格納されている値を変更することはできないということです。

const obj = {foo: 'bar'};
 obj = {foo: 'baz'}; // TypeError: invalid assignment to const `obj'
 
-

しかし、変数内のプロパティは変更できます:

+

しかし、変数内のプロパティは変更することができます。

obj.foo = 'baz';
 obj; // Object { foo: "baz" }
@@ -85,7 +87,7 @@ obj; // Object { foo: "baz" }

関連項目

-- cgit v1.2.3-54-g00ecf