This part of the tutorial is about core JavaScript, the language itself.
But we need a working environment to run our scripts and, since this book is online, the browser is a good choice. We’ll keep the amount of browser-specific commands (like alert) to a minimum so that you don’t spend time on them if you plan to concentrate on another environment (like Node.js). We’ll focus on JavaScript in the browser in the next part of the tutorial.
So first, let’s see how we attach a script to a webpage. For server-side environments (like Node.js), you can execute the script with a command like "node my.js".
The “script” tag
JavaScript programs can be inserted almost anywhere into an HTML document using the <script> tag.
For instance:
<!DOCTYPE HTML>
<html>
<body>
<p>Before the script...</p>
<script>
alert( 'Hello, world!' );
</script>
<p>...After the script.</p>
</body>
</html>
You can run the example by clicking the “Play” button in the right-top corner of the box above.
The <script> tag contains JavaScript code which is automatically executed when the browser processes the tag.
Modern markup
The <script> tag has a few attributes that are rarely used nowadays but can still be found in old code:
- The
typeattribute:<script type=…> -
The old HTML standard, HTML4, required a script to have a
type. Usually it wastype="text/javascript". It’s not required anymore. Also, the modern HTML standard totally changed the meaning of this attribute. Now, it can be used for JavaScript modules. But that’s an advanced topic, we’ll talk about modules in another part of the tutorial. - The
languageattribute:<script language=…> -
This attribute was meant to show the language of the script. This attribute no longer makes sense because JavaScript is the default language. There is no need to use it.
- Comments before and after scripts.
-
In really ancient books and guides, you may find comments inside
<script>tags, like this:<script type="text/javascript"><!-- ... //--></script>This trick isn’t used in modern JavaScript. These comments hide JavaScript code from old browsers that didn’t know how to process the
<script>tag. Since browsers released in the last 15 years don’t have this issue, this kind of comment can help you identify really old code.
External scripts
If we have a lot of JavaScript code, we can put it into a separate file.
Script files are attached to HTML with the src attribute:
<script src="/path/to/script.js"></script>
Here, /path/to/script.js is an absolute path to the script from the site root. One can also provide a relative path from the current page. For instance, src="script.js", just like src="./script.js", would mean a file "script.js" in the current folder.
We can give a full URL as well. For instance: