控えめなJavaScript
あらゆる仮定を行わない:防御的プログラミング (Defensive programming) の技法はJavaScriptが動かなかったり、ブラウザが期待されたメソッドをサポートしていない可能性を見込まなければいけない。また、HTMLが変更されていることや、予期しない入力デバイスが使われること、他のスクリプトが存在しなかったり、他のスクリプトがグローバルな名前空間に侵入してきたりする可能性もある。
結びつけるものや関係を見つける。想定しているHTMLの、IDや他の性質などである。
個々のDOMオブジェクトを縦断的に見るのは、その専門家に任せる。例えば、ブラウザに組み込まれたCSSハンドラなどである。
ブラウザとユーザを理解する。特にそれらがどのように動作しなかったり、どんな仮定をしているかということや、一般的でない設定や使い方をしているかということである。
イベントを理解する。どのようにイベントが発生するかということや、ほとんどのイベントハンドラに渡されるEventオブジェクトの機能の理解も含まれる。
他のスクリプトとうまく共存して実行する。グローバルな関数や変数名を避けるなどする。
次の開発者のために作業する。わかりやすい変数や関数名を使ったり、論理的で読みやすいコードを書いたり、依存関係を明らかにしたり、混乱をきたす可能性のあるすべてのコードにコメントを書いたりする。
控えめなJavaScript(ひかえめなジャバスクリプト、英語: Unobtrusive JavaScript)とは、WebページでのJavaScriptの利用における一般的なアプローチである。この用語は正式には定義されていないが、基本的な原理は一般的に次のようなことが含まれると理解されている。
機能(behavior layer)の、Webページの構造・コンテンツ、表示との分離
伝統的なJavaScriptプログラミングの問題(ブラウザによる違いや拡張性の欠如など)を回避するためのベストプラクティス
高度なJavaScriptの機能をサポートしない可能性のあるユーザーエージェントをサポートするためのプログレッシブエンハンスメント