<script>: The SCRIPT Element

Last updated: 2026-10-13

<script>The SCRIPT Element

Embeds or references JavaScript for interactivity; place in head or body, often at body end for faster rendering.

CategoryScripts & Embedding
Content ModelFlow content
Allowed ParentsAny element that accepts flow content
Content TagYes — requires closing </script> tag
StatusStandard

📝 Syntax

<script src="app.js"></script>

⚙️ Attributes

This element supports the global attributes plus the following:

AttributeValueDescription
srcURL of an external script (inline code ignored when src is set).
typeScript type, default text/javascript (module for ES modules).
asyncExecutes as soon as downloaded, without blocking parsing.
deferRuns after parsing, before DOMContentLoaded.
crossoriginCORS setting for cross-origin scripts.

▶ Example

Edit the code below and see the live result in the playground:

🌐 Browser Support

Browser ChromeChrome EdgeEdge FirefoxFirefox SafariSafari OperaOpera
<script> ✓ v1 ✓ v12 ✓ v1 ✓ v1 ✓ v1
Supported in all major browsers
Tip: Use src for external files; inline code goes between tags; async/defer apply only to external scripts.

❓ FAQ

QWhat is the difference between async and defer on script?
ABoth load external scripts without blocking: async executes as soon as it downloads, order not guaranteed (good for standalone scripts like analytics); defer executes in order after DOM parsing (good for DOM-dependent main scripts). With neither, downloading blocks HTML parsing — modern external scripts should always have one.
QShould script go in head or at the end of body?
AWith defer, head is fine (download early, render not blocked); inline scripts or DOM-dependent scripts without defer go at the end of body. The modern default is head + defer — module scripts are deferred automatically anyway.
QWhat is special about script type='module'?
AIt enables ES Modules: import/export support, automatic strict mode, default deferred execution, and isolated scope (no global pollution). Classic non-module scripts run in global scope and execute synchronously. New projects should standardize on module.
More case studies coming soon — check back later.

📚 Related Tutorials

Web-Tutorial.com

Web-Tutorial Tech Team

A team of developers maintaining programming tutorials. Each tutorial is written and reviewed by developers with expertise in that field. We work to keep our content accurate and reliable — if you spot an issue, please let us know.

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏