プロが教えるわが家の防犯対策術!

たぶんできないのだとは思いますが、ダメ元で質問です。
JavaScriptでVBのOption Explicitステートメントのように、変数の明示的な宣言を強制することはできないのでしょうか?
調べた限りでは、なさそうですが、将来的に言語使仕様が変わる云々の可能性も含めてコメント頂けると幸いです。

できないとすると、変数のタイプミスによるバグの発見が大変だと思いますが、皆さんはどのように工夫してデバッグされていますか?

A 回答 (3件)

Mozillaというブラウザには、JavaScriptコンソールというものが付属していて、


エラーなどを表示してくれますよ。
Netscape7以降にもついているかもしれません。

ブラウザの軽さで考えるなら、Mozilla Firebirdを利用されるのが一番良いかもしれません。

この回答への補足

コメントありがとうございます。

> Mozillaというブラウザには、JavaScriptコンソールというものが付属していて、
> エラーなどを表示してくれますよ。
> Netscape7以降にもついているかもしれません。

エラーにならない記述ミスも検出できるのでしょうか?
(構文上は誤りではないが、意図する記述とは異なる場合)

補足日時:2003/10/05 05:24
    • good
    • 0

質問の題にある点については、詳しくないのでちょっとお答えできませんが、デバッグ作業のことについて。



私の場合はブラウザに実行させて、それぞれのブラウザが出すエラーレポートを参考にしてデバッグしています。

Netscape7.1は、ツールメニューのWeb開発という項目内にあるJavaScriptコンソールでエラーをチェックできます。 エラーの起きている問題の行や、エラーの内容を記録して表示してくれるので、なかなか便利です。
Opera7.11にも、「ウィンドウメニュー」の中の特殊ウィンドウに含まれるJavaScriptコンソールがあり、これも一応エラーを辿る時に使えます。
IEも、エラーを出すとステータスバー上のアイコン表示が出ますので、それをダブルクリックして出てくるダイアログ上の詳細情報で、エラーの起きた動作を拾えます。 ただし、IEで提供されるJavaScriptのエラー情報は非常に断片的で、デバッグする時には少々力不足なところがあります。

変数のタイプミスくらいであれば、上記のいずれでも異常を見つけられます。 ただ、オブジェクトやステートメントのタイプミスなどになると、IEの情報では検知し難くなるので、IEでは原因がつかみきれないエラーは、Netscape7.1のJavaScriptコンソールを使って探しています。
IEのみで動作するスクリプトについては、どうしてもIEのエラー情報からバグのある部分を推定して、問題を探し出す必要がありますが、クロスブラウザで動作するスクリプトの場合はほとんどのデバッグ作業はNetscape7.1上でやっています。

なお、Netscapeは4でもJavaScriptコンソールを実装していたと思います。 NetscapeでJavaScriptの動作に問題があったときには、アドレスバーに「javascript:」と記入して実行すると、JavaScriptコンソールが立ち上がると思います(最近のNetscapeでも同じ手順でJavaScriptコンソールを起動できます)。

私はこのような感じでデバッグを行っています。 参考になれば…
    • good
    • 0
この回答へのお礼

コメントありがとうございます。

なぜか、IEの環境では、スクリプトの記述が正しくないのにエラーが出ない(しかし、当然ながら意図した動作をしない)場合が多いようなのです。

> オブジェクトやステートメントのタイプミスなどになると、IEの情報では検知し難くなるので、IEでは原因がつかみきれないエラーは、Netscape7.1のJavaScriptコンソールを使って探しています。

機会があれば、ご指摘のツールも検討してみます。
情報提供ありがとうございました。

お礼日時:2003/10/05 05:31

残念ながらできないと思われます。



#2に対するお礼として
「なぜか、IEの環境では、スクリプトの記述が正しくないのにエラーが出ない」
と説明されていますが、
(1) 詳細設定で「スクリプト エラーごとに通知を表示する」がチェックされていること
(2) ステータスバーの左下に黄色の三角に黒でエクスクラメーションマークが表示されている場合に発生したスクリプトエラーは、エラーチェックされないこと
の2点を確認されるとデバッグできる範囲が広がるのではないでしょうか?
    • good
    • 0
この回答へのお礼

「できない」という結論は当初から予想していましたが、裏付けが取れて、あきらめが付きました。(笑

デバッグの方法に関しては参考になるアドバイスを頂き、ありがとうございました。

お礼日時:2003/10/08 19:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!