teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

文章の流れを調整

2018/04/04 01:34

投稿

miyabi-sun
miyabi-sun

スコア21459

answer CHANGED
@@ -6,22 +6,23 @@
6
6
  > SyntaxError: Unexpected identifier
7
7
  > ```
8
8
 
9
- エラー文を読み解限りではNode.jsのバージョンが古いのが原因と思われます。
9
+ 結論から言えば、恐らくNode.jsのバージョンが古いのが原因と思われます。
10
10
 
11
+ そもそもasyncというのは正式な構文ですので、本来構文エラーで弾かれるということはありません。
12
+ しかし、async構文はES2017というつい最近実装された構文なので、新しいNode.jsでなければ構文エラーで弾かれます。
13
+
14
+ 下記のサイトによると、Node.jsのv7.10.1以降ならば対応しているようです。
15
+ [async functions - Node.js ES2017 Support](http://node.green/#ES2017-features-async-functions)
16
+
11
17
  ```Bash
12
18
  # バージョンを調べる
13
19
  $ node -v
14
20
  v7.2.1 # <- バージョン古いのでアウト
15
21
  ```
16
22
 
17
- JavaScriptはECMAScript(以下ES)という仕様書に従って、各社のブラウザが勝手に実装したものです。
18
- エラー文に含まれるasyncはES6の中でも後期(ES2017)に実装された最新の構文で、Node.jsに取り込まれたのはv7.10.1以降のようです。
19
-
20
- [async functions - Node.js ES2017 Support](http://node.green/#ES2017-features-async-functions)
21
-
22
- 従って、もしNode.jsの4系や6系を利用しているならば、
23
+ もしNode.jsの4系や6系を利用しているならば、
23
24
  「そんな構文ないじゃないか!シンタックスエラー」となりますし、
24
- それ以降のバージョンであれば「ああ、asyncね、構文OK」となります
25
+ それ以降のバージョンであれば「ああ、asyncね、構文OK」となるでしょう
25
26
 
26
27
  ---
27
28