Preface

Unofficial logo of the JavaScript language by Chris Williams. https://github.com/voodootikigod/logo.js/blob/1544bdeed/js.svg https://github.com/voodootikigod/logo.js LICENSE: https://github.com/voodootikigod/logo.js/blob/1544bdeed/LICENSE

Context of this tutorial

I decided to write this tutorial as a way to learn JavaScript myself. I learned programming in Pascal a long time ago as part of my BSc. in mechanical engineering. Later I learned object-oriented programming in Java. I based my learning of JavaScript and this tutorial entirely on public resources on the Internet. I mainly used the MDN Web Docs resources. At the bottom of each page, I have listed the web resources I used for the content on that page.

There are a lot of JavaScript tutorials out there on the web, but none that I have been able to find that explains JavaScript in a clear, accessible, yet comprehensive way, example-based using uncluttered examples, and without a lot of redundant text. I have tried to fill that void with this tutorial, a tutorial I wish I had when I first started learning JavaScript. It is undoubtedly not perfect, but it is how I came to understand the JavaScript language.

Prerequisites

JavaScript is a popular programming language used in a wide variety of software systems. It is used on web servers, in Android and iPhone apps, and traditionally in web pages. JavaScript in web pages, or "client-side" JavaScript, is executed by the user's web browser, where it dynamically manipulates and interacts with content, HTML and CSS. A web page consists of content that is semantically marked up with HTML, styled with CSS, and made interactive or animated with JavaScript.

In this tutorial, I will mostly use client-side examples and focus on JavaScript in a web browser. Therefore, if you are not familiar with at least the basics of HTML and CSS, I recommend that you learn the basics of these languages and how to create a simple HTML page before proceeding. Apart from that, I have assumed that the reader has minimal to no prior knowledge of programming.