The <script> element either contains scripting statements, or it points to an external script file through the src attribute.
Note: If the "src" attribute is present, the <script> element must be empty.
Tip: Also look at the <noscript> element for users that have disabled scripts in their browser, or have a browser that doesn't support client-side scripting.
Note: There are several ways an external script can be executed:
The "type" attribute is required in HTML 4, but optional in HTML5.
The "async" attribute is new in HTML5.
The HTML 4.01 attribute: "xml:space", is not supported in HTML5.
In XHTML, the content inside scripts is declared as #PCDATA (instead of CDATA), which means that entities will be parsed.
This means that in XHTML, all special characters should be encoded, or all content should be wrapped inside a CDATA section:
= New in HTML5.
|async||async||Specifies that the script is executed asynchronously (only for external scripts)|
|charset||charset||Specifies the character encoding used in an external script file|
|defer||defer||Specifies that the script is executed when the page has finished parsing (only for external scripts)|
|src||URL||Specifies the URL of an external script file|
|type||media_type||Specifies the media type of the script|
|xml:space||preserve||Not supported in HTML5.
Specifies whether whitespace in code should be preserved
The <script> tag also supports the Global Attributes in HTML.
HTML tutorial: HTML Scripts
HTML DOM reference: Script Object
Most browsers will display the <script> element with the following default values: