質問: 外部jsファイル参照での正しい文法について 現在、下記のような文法でセレクトのオプション項目を 外部jsを参照して使っています。 これで動作に関しては問題なく作動していますが、 文法的には正しくないですよね? 【jsファイル】 with ( document ){ writeln( '項目' ); writeln( '項目a' ); writeln( '項目b' ); }
回答: 文法チェッカーは、javascriptを実行して得られた結果に対してチェックをするわけではありません。渡したhtmlファイルに書かれた静的な内容だけをチェックします。したがって、静的な内容は文法的に正しくても、動的に生成された部分は(等価なものを静的に記述した場合)文法的に滅茶苦茶ということも簡単にできるわけです。いわば、静的に記述された部分で文法チェッカーを騙す、というわけです。ですから、javascriptで動的に内容を生成する場合、文法チェッカーを使用して高い点数を得ることの意味を最初に検討される方がよいかと思います。 ・・・というのを前置きとしてご理解いただいたうえで、「騙す」のであれば下記のような方法があるかと思います。文法チェッカーによる警告が少なくなるように静的な部分を書いておき、後からjavascriptでそれを書き換えてしまうという例になっています。 test dummy