[解決済み】"Unexpected token ILLEGAL "の原因が見えない
質問
コンソールにこのようなJavaScriptエラーが表示されます。
Uncaught SyntaxError: 予期しないトークン ILLEGAL
これは私のコードです。
var foo = 'bar';
見ての通り、超シンプルです。どうして構文エラーになるのでしょうか?
どのように解決するのですか?
エラーについて
JavaScript インタープリタがコードを解析するとき、コードは「トークン」と呼ばれる断片に分割されます。 トークンは、以下のいずれかに分類することができません。 4つの基本的なトークンタイプ ほとんどの実装では、このエラーは "ILLEGAL" と表示され、このエラーがスローされます。
同じエラーは、例えばjsファイルを実行しようとすると、不正な
@
文字、誤った位置にある中括弧、ブラケット、"スマートクオート、正しく囲まれていないシングルクォート (例.
this.run('dev1)
などがあります。
様々な状況がこのエラーを引き起こす可能性があります。しかし、明らかな構文エラーや不正な文字がない場合、このエラーの原因となるのは 見えない 不正な文字 この回答はそういうことです。
でも、違法なものは見当たりません!
コード内のセミコロンの直後に見えない文字があります。それは
ユニコード
U+200B
ゼロ幅スペース
文字(通称
ZWSP
, HTMLエンティティ
​
). その文字が原因で
Unexpected token ILLEGAL
JavaScriptのシンタックスエラーです。
そして、それはどこから来たのでしょうか?
確かなことは言えませんが、私の予想では
jsfiddle
. そこからコードを貼り付けると、1つまたは複数の
U+200B
という文字があります。このツールは、長い文字列のワードラッピングを制御するためにこの文字を使っているようです。
更新日 2013-01-07
最新版以降
jsfiddleアップデート
,
という文字が赤い点で表示されるようになりました。
のように、codepenが行う。
どうやら
を挿入することもできません。
U+200B
という文字が勝手に出てくるようになったので、今後はこの問題は少なくなるはずです。
アップデート 2015-03-17
[...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...]
関連
-
[解決済み】JavaScriptエラー(Uncaught SyntaxError: Unexpected end of input)
-
[解決済み】フォームコントロールの値アクセサがない
-
[解決済み】React、Uncaught ReferenceError。ReactDOMは定義されていません
-
[解決済み】Syntax error: JavaScriptの不正なreturnステートメント
-
[解決済み] jQueryでチェックボックスに "checked "を設定する
-
[解決済み] JavaScriptのオブジェクトが空であることをテストするにはどうすればよいですか?
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み] HTML5のlocalStorageにオブジェクトを格納する方法は?
-
[解決済み] JavaScriptでURLの#hashを確認する方法は?
-
[解決済み] クローム Uncaught SyntaxError: 予期しない入力の終了
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] jQueryで、ユーザーがそのフィールドを編集している間、テキストフィールドの最初の文字を大文字にするにはどうすればよいですか?
-
[解決済み】Angular JS Uncaught Error。[インジェクター:モジュラー]。
-
[解決済み】Uncaught ReferenceError。Reactが定義されていない
-
[解決済み】getElementByIdはnullを返す?[クローズド]
-
[解決済み】エラー:リスン EACCES 0.0.0.0:80 OSx Node.js
-
[解決済み】リソースはドキュメントと解釈されるが、MIMEタイプはapplication/zipで転送される
-
[解決済み】'useState' が定義されていない no-undef React
-
[解決済み] [Solved] Uncaught Invariant Violation: 前のレンダリング中よりも多くのフックをレンダリングする
-
[解決済み】document.write()で書くとき、なぜ<script>タグを分割するのですか?)
-
[解決済み] Chrome Uncaught Syntax Error: 予期しないトークン ILLEGAL [重複]。