1. ホーム
  2. javascript

[解決済み】"Unexpected token ILLEGAL "の原因が見えない

2022-02-08 03:55:42

質問

コンソールにこのようなJavaScriptエラーが表示されます。

Uncaught SyntaxError: 予期しないトークン ILLEGAL

これは私のコードです。

var foo = 'bar';​

見ての通り、超シンプルです。どうして構文エラーになるのでしょうか?

どのように解決するのですか?

エラーについて

JavaScript インタープリタがコードを解析するとき、コードは「トークン」と呼ばれる断片に分割されます。 トークンは、以下のいずれかに分類することができません。 4つの基本的なトークンタイプ ほとんどの実装では、このエラーは "ILLEGAL" と表示され、このエラーがスローされます。

同じエラーは、例えばjsファイルを実行しようとすると、不正な @ 文字、誤った位置にある中括弧、ブラケット、"スマートクオート、正しく囲まれていないシングルクォート (例. this.run('dev1) などがあります。

<ブロッククオート

様々な状況がこのエラーを引き起こす可能性があります。しかし、明らかな構文エラーや不正な文字がない場合、このエラーの原因となるのは 見えない 不正な文字 この回答はそういうことです。

でも、違法なものは見当たりません!

コード内のセミコロンの直後に見えない文字があります。それは ユニコード U+200B ゼロ幅スペース 文字(通称 ZWSP , HTMLエンティティ &#8203; ). その文字が原因で Unexpected token ILLEGAL JavaScriptのシンタックスエラーです。

そして、それはどこから来たのでしょうか?

確かなことは言えませんが、私の予想では jsfiddle . そこからコードを貼り付けると、1つまたは複数の U+200B という文字があります。このツールは、長い文字列のワードラッピングを制御するためにこの文字を使っているようです。

<ブロッククオート

更新日 2013-01-07

最新版以降 jsfiddleアップデート , という文字が赤い点で表示されるようになりました。 のように、codepenが行う。 どうやら を挿入することもできません。 U+200B という文字が勝手に出てくるようになったので、今後はこの問題は少なくなるはずです。

アップデート 2015-03-17

[...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...]