From fa9d0b4ad49db970ba8707a4f6ab9ce17b5383b8 Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Fri, 25 Jun 2021 01:40:44 +0900 Subject: Web/JavaScript/Reference/Errors/P-V* を更新 (#1205) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Web/JavaScript/Reference/Errors/P-V* を更新 2021/06/14 時点の英語版に同期 * スラッグを修正 --- .../errors/unnamed_function_statement/index.html | 47 ++++++++++++---------- 1 file changed, 25 insertions(+), 22 deletions(-) (limited to 'files/ja/web/javascript/reference/errors/unnamed_function_statement') diff --git a/files/ja/web/javascript/reference/errors/unnamed_function_statement/index.html b/files/ja/web/javascript/reference/errors/unnamed_function_statement/index.html index 35abd0a3f6..4bdef90636 100644 --- a/files/ja/web/javascript/reference/errors/unnamed_function_statement/index.html +++ b/files/ja/web/javascript/reference/errors/unnamed_function_statement/index.html @@ -2,33 +2,36 @@ title: 'SyntaxError: function statement requires a name' slug: Web/JavaScript/Reference/Errors/Unnamed_function_statement tags: - - Error - - Errors - - JavaScript - - SyntaxError +- Error +- Errors +- JavaScript +- SyntaxError translation_of: Web/JavaScript/Reference/Errors/Unnamed_function_statement ---
{{jsSidebar("Errors")}}
-

メッセージ

+

JavaScript の例外 "function statement requires a name" は、名前が必要な関数文がコードの中にあった場合に発生します。

-
SyntaxError: function statement requires a name [Firefox]
+

エラーメッセージ

+ +
Syntax Error: Expected identifier (Edge)
+SyntaxError: function statement requires a name [Firefox]
 SyntaxError: Unexpected token ( [Chrome]
 
-

エラータイプ

+

エラーの種類

{{jsxref("SyntaxError")}}

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

-

コードに名前が必要な function ステートメントがあります。関数がどのように定義されているか、関数の名前を指定する必要があるかどうか、または問題の関数が関数式、{{Glossary("IIFE")}} である必要があるかどうか、 コードがこのコンテクストに正しく置かれているかどうかを確認する必要があります。

+

コードに名前が必要な関数文があります。関数がどのように定義されているか、関数の名前を指定する必要があるかどうか、または問題の関数が関数式、IIFE である必要があるかどうか、 コードがこのコンテクストに正しく置かれているかどうかを確認する必要があります。

-

ステートメント vs 式

+

文と式

-

function ステートメント (または function 宣言) では名前が必要であり、これは動作しません:

+

function 文 (または function 宣言) では名前が必要であり、次のものは動作しません。

function () {
   return 'Hello world';
@@ -36,19 +39,19 @@ SyntaxError: Unexpected token ( [Chrome]
 // SyntaxError: function statement requires a name
 
-

代わりに、function 式 (代入) を使用できます:

+

代わりに、function 式 (代入) を使用することができます。

var greet = function() {
   return 'Hello world';
 };
-

または、定義するとすぐに実行される IIFE (即時実行関数式) を定義しようとしているのかもしれません。その場合は、もう少々括弧が必要です:

+

または、定義するとすぐに実行される IIFE (即時実行関数式) を定義しようとしているのかもしれません。その場合は、もう少々括弧が必要です。

(function () {
 
 })();
-

ラベル付けされた関数

+

ラベル付けされた関数

関数 label を使用している場合、function キーワードの後に関数名を指定する必要があります。これは動作しません:

@@ -60,7 +63,7 @@ SyntaxError: Unexpected token ( [Chrome] // SyntaxError: function statement requires a name
-

たとえば、これは動作します:

+

たとえば、これは動作します。

function Greeter() {
   german: function g() {
@@ -68,7 +71,7 @@ SyntaxError: Unexpected token ( [Chrome]
   }
 }
-

オブジェクトのメソッド

+

オブジェクトのメソッド

オブジェクトのメソッドを作るならば、オブジェクトを作る必要があります。その場合、function キーワードの後に名前がない次の構文は有効です。

@@ -78,7 +81,7 @@ SyntaxError: Unexpected token ( [Chrome] } }; -

コールバック構文

+

コールバック構文

コールバックを使用するときの構文もチェックします。大括弧とカンマが混同しやすいです。

@@ -92,7 +95,7 @@ SyntaxError: Unexpected token ( [Chrome] // SyntaxError: function statement requires a name -

正しくは:

+

正しくは、次の通りです。

promise.then(
   function() {
@@ -107,9 +110,9 @@ SyntaxError: Unexpected token ( [Chrome]
 

関連項目

-- cgit v1.2.3-54-g00ecf