script - 動的なスクリプトやデータブロック

動的スクリプトを入れるために使うためには、インラインでスクリプトを組み込むか、または、src属性を使って外部ファイルからスクリプトをインポートすることができます。
この時、スクリプト言語がtext/javascript以外の場合は、type属性でMIMEタイプの指定が必須になります。
また、動的に属性( src, type, charset, async, defer...)を変更しても、直接的には何も起こりません。
スクリプト実行のタイミングは、もしasync属性があれば、スクリプトは利用可能になった時点で非同期に実行されまが、
async属性がなく、defer属性がある場合、スクリプトはページのパースが終了したときに実行されます。
どちらの属性もなければ、ユーザーエージェントがページをパースする前に、即座にスクリプトが取り出され実行されます。

script要素のブラウザ別サポート状況

- ie6 ie7 ie8 ie9 firefox4 chorme safari5 opera10
script

script要素のHTML4からHTML5への変更点

HTML4.01では、type属性が必須でしたが、
HTML5では省略できるようになりました(初期値:text/javascript)

コンテンツ属性

グローバル属性 すべての要素で共通に使える属性。HTML5で新たに定義された属性もあります。
src 外部スクリプトのアドレスを指定
async スクリプトは利用可能になった時点で非同期に実行されます。
defer スクリプトはページのパース終了時に実行されます。
type スクリプトの言語やデータのフォーマットを指定します (初期値:text/javascript)
charset 外部スクリプトの文字エンコーディングを指定

「インラインスクリプト」のサンプル

HTMLコード

<script type="text/javascript">
	alert("hello! world!");
</script>

「外部スクリプトの読み込み」のサンプル

HTMLコード

<script type="text/javascript" src="example.js"></script>

「利用可能になった時点で非同期に実行」のサンプル

HTMLコード

<script type="text/javascript" async></script>

「ページのパースが終了したときに実行」のサンプル

HTMLコード

<script type="text/javascript" defer></script>

原文(英語):(http://www.w3.org/TR/2009/WD-html5-20090825/semantics.html#script)