From 2a80998020496995b1eb33e0a2ed024f1708535d Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Wed, 14 Apr 2021 01:29:19 +0900 Subject: 20210404 web/java script/reference/errors 以下の一部のファイルを更新 (#397) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Web/JavaScript/Reference/Errors/Missing_bracket_after_list を更新 Web/JavaScript/Reference/Errors/Missing_bracket_after_list を 2021/02/20 時点の英語版に同期 * Web/JavaScript/Reference/Errors/Missing_semicolon_before_statement を更新 Missing_semicolon_before_statement を 2021/03/29 時点の英語版に更新 * Missing_curly_after_property_list を更新 Missing_curly_after_property_list を 2021/02/20 時点の英語版に同期 * 山括弧忘れを修正 * Bad_return_or_yield を更新 Bad_return_or_yield を 2021/02/20 時点の英語版に同期 * For-each-in_loops_are_deprecated を更新 For-each-in_loops_are_deprecated の 2021/02/20 時点の英語版に同期 * Missing_curly_after_property_list を更新 Missing_curly_after_property_list を 2021/02/20 時点の英語版に同期 * Bad_return_or_yield を更新 Bad_return_or_yield を 2021/02/20 時点の英語版に同期 * For-each-in_loops_are_deprecated を更新 For-each-in_loops_are_deprecated の 2021/02/20 時点の英語版に同期 * Invalid_array_length を更新 Invalid_array_length を 2021/02/20 時点の英語版に同期 * 用語の修正 --- .../errors/invalid_array_length/index.html | 44 ++++++++++++---------- 1 file changed, 24 insertions(+), 20 deletions(-) (limited to 'files/ja/web/javascript/reference/errors/invalid_array_length') diff --git a/files/ja/web/javascript/reference/errors/invalid_array_length/index.html b/files/ja/web/javascript/reference/errors/invalid_array_length/index.html index 8cad04b6be..4531daac7d 100644 --- a/files/ja/web/javascript/reference/errors/invalid_array_length/index.html +++ b/files/ja/web/javascript/reference/errors/invalid_array_length/index.html @@ -2,42 +2,46 @@ title: 'RangeError: invalid array length' slug: Web/JavaScript/Reference/Errors/Invalid_array_length tags: - - Errors - - JavaScript - - RangeError +- Error +- Errors +- JavaScript +- RangeError translation_of: Web/JavaScript/Reference/Errors/Invalid_array_length ---
{{jsSidebar("Errors")}}
-

メッセージ

+

JavaScript の例外 "Invalid array length" は、 {{jsxref("Array")}} または {{jsxref("ArrayBuffer")}} を長さが負の数か 232 以上で生成しようとした場合、または {{jsxref("Array.length")}} プロパティに負の数か 232 以上の値を設定しようとした場合に発生します。

-
RangeError: invalid array length (Firefox)
+

メッセージ

+ +
RangeError: Array length must be a finite positive integer (Edge)
+RangeError: invalid array length (Firefox)
 RangeError: Invalid array length (Chrome)
 RangeError: Invalid array buffer length (Chrome)
 
-

エラータイプ

+

エラー種別

{{jsxref("RangeError")}}

-

何が悪かったの?

+

原因

-

以下のいずれかです:

+

配列の長さが不正になるのは、以下のような場合です。

-

なぜ ArrayArrayBuffer の length が制限されるのでしょうか?配列ArrayBufferlength プロパティは、符号なし 32-bit 整数を表し、値は 0 から 232-1 の範囲の値しか保持できません。

+

なぜ ArrayArrayBuffer の length が制限されるのでしょうか? ArrayArrayBufferlength プロパティは、符号なし 32 ビット整数で表されるため、値は 0 から 232-1 の範囲の値しか保持できません。

-

コンストラクタを使用して配列を生成した場合、最初の引数が配列の length と解釈されるように、リテラル表記を使用したいかもしれません。

+

コンストラクターを使用して Array を生成すると、最初の引数が Array の長さとして解釈されるので、代わりにリテラル表記を使った方が良いかもしれません。

-

さもなければ、length プロパティが設定される前、またはコンストラクタの引数として使用される前に、length を制限したいかもしれません。

+

そうでない場合は、 length プロパティを設定する前、またはコンストラクターの引数として使用する前に、長さを制限しておくとよいでしょう。

-

+

-

無効なケース

+

不正なケース

new Array(Math.pow(2, 40))
 new Array(-1)
@@ -51,7 +55,7 @@ let b = new Array(Math.pow(2, 32) - 1);
 b.length = b.length + 1;         // length プロパティに 2^32 を設定
 
-

有効なケース

+

有効なケース

[ Math.pow(2, 40) ]                     // [ 1099511627776 ]
 [ -1 ]                                  // [ -1 ]
@@ -68,10 +72,10 @@ b.length = Math.min(0xffffffff, b.length + 1);
 // which can also be written as (-1 >>> 0)
 
-

関連項目

+

関連情報

-- cgit v1.2.3-54-g00ecf