<script>: SCRIPT 要素
最終更新:2026-10-13
<script>SCRIPT 要素
インタラクション用の JavaScript を埋め込むか参照します。head または body に置き、描画を速くするため body の末尾に置くことが多いです。
| カテゴリ | スクリプトと埋め込み |
|---|---|
| コンテンツモデル | フローコンテンツ |
| 許可される親要素 | フローコンテンツを受け入れる要素 |
| 閉じタグ | 必要 </script> タグ |
| ステータス | 標準 |
📝 構文
<script src="app.js"></script>
⚙️ 属性
この要素はグローバル属性に加え、以下の属性をサポートします:
| 属性 | 値 | 説明 |
|---|---|---|
src | URL of an external script (inline code ignored when src is set). | |
type | Script type, default text/javascript (module for ES modules). | |
async | Executes as soon as downloaded, without blocking parsing. | |
defer | Runs after parsing, before DOMContentLoaded. | |
crossorigin | CORS setting for cross-origin scripts. |
▶ サンプル
下のコードを編集して、playground でリアルタイム結果を確認:
🌐 ブラウザサポート
| ブラウザ | |||||
|---|---|---|---|---|---|
| <script> | ✓ v1 | ✓ v12 | ✓ v1 | ✓ v1 | ✓ v1 |
| すべての主要ブラウザでサポート | |||||
ヒント: 外部ファイルには src を使い、インラインコードはタグ間に書きます。async/defer は外部スクリプトにのみ有効です。
❓ よくある質問
Qscript の async と defer の違いは何ですか?
Aどちらも外部スクリプトをノンブロッキングで読み込みます。
async はダウンロード完了後すぐ実行し、順序は保証されません(解析タグなど独立したスクリプト向き)。defer は DOM の解析完了後に順序どおり実行します(DOM に依存する主スクリプト向き)。どちらも付けないと、ダウンロード中に HTML の解析が止まります。現代のプロジェクトでは外部スクリプトに少なくともどちらかを付けましょう。Qscript は head と body の末尾のどちらに置くべきですか?
A
defer を付けたスクリプトなら head で構いません(早くダウンロードでき、描画も止めません)。インラインスクリプトや、DOM に依存する defer なしのスクリプトは body の末尾に置きます。現代のデフォルトは head と defer の組み合わせで、module タイプならデフォルトで defer 相当の挙動になります。Qscript の type='module' の特徴は何ですか?
AES Module を有効にします。import/export に対応し、自動で厳格モードになり、デフォルトで defer 相当の遅延実行になり、スコープが独立します(グローバルを汚染しません)。従来の module なしのスクリプトは、デフォルトでグローバルスコープ・同期実行です。新規プロジェクトでは module に統一するのがおすすめです。
🏷️ 関連タグ
💡 関連ケース
今後さらにケーススタディを追加予定です。