久しぶりに簡単な JavaScript を書く機会があったんですが、クォーテーションの構文エラーでハマって悔しかったのでメモ。
構文エラーでハマった JavaScript コード
JavaScript の場合、ダブルクォーテーションの中でクォーテーションを使うには、シングルクォーテーションを使えば良かったよね? レベルの認識で以下の様な行を書いた。
document.write (“<a onclick="hoge("></a>“);
Internet Explorer 6 と 7 で確認してみると構文エラーが発生。 ちなみに Firefox 2 でエラーは出ませんでした。
※ 実際はもっと長いコードだったんですが、解り易くするため簡単なコードに書き換えています。
正しい JavaScript コード
結局、シングルクォーテーションの入れ子がおかしいのが原因でした。 書き直した正しい JavaScript コードは以下の通り。
document.write (“<a onclick="\"hoge('fuga')\""></a>“);
ダブルクォーテーションの中で、ダブルクォーテーションを使う時はエスケープすると良いみたい。
原因を見つけるまでに小一時間かかったよ。 orz