IEのJavascriptで「識別子、文字列または数がありません。」エラー

IEの場合だけガジェットのロード時にエラーになってエントリーポイントがキックされない。FireFoxはOK、ChromeもOK、SafariもOK。IEだけNG。エラーメッセージは「識別子、文字列または数がありません。」

しばらく悩んでいたが、検索するとあっさり解決した。

IEのjavascriptエラー「識別子、文字列または数がありません。 」

他にも同じ言及をしているページが多数ある。IE-Javascriptでみんな一度は遭遇するメジャーな問題らしい。

オブジェクトの記法で最後の要素の後ろにカンマを許容するかどうかで

  • 許容しない(IE)
  • 許容する(その他)

で動作が変わってしまうのが原因だった。Javascriptの規格上は許容しないのが正解、つまりIEが正しい珍しいケースだ。

しかしJavascript以外の動的言語では要素の最後にカンマを許容するのが普通だ。PythonやPHPではエラーにならないし、下記ページによるとPerlやRubyでも許容するらしい。

連想配列の最後にカンマを入れてはいけない言語もある – すぎゃーんメモ

悩ましい問題だ。

Leave a Reply

Your email address will not be published. Required fields are marked *