JavaScript Express

    Welcome! 👋

    Welcome to JavaScript Express! JavaScript is a versatile language for building websites, servers, mobile apps, and more. In this guide we'll cover JavaScript from the ground up.

    About this guide

    This guide is intended for developers who know at least one other programming language well. We won't cover general programming concepts (e.g. what is a variable?), but rather JavaScript-specific concepts (e.g. how do variables work in JavaScript?).

    I hope you enjoy learning JavaScript. Most of this guide was written by me, @dvnabbott. Some pages may be written by other authors (listed at top of each page).


    This guide uses a web-based JavaScript sandbox, which can evaluate JavaScript code samples and display console logs inline with the code. For example:

    JavaScript is quirky

    The first version of JavaScript was famously written in 10 days by Brendan Eich while working on Mozilla. It's full of quirky features that were meant to be convenient for writing small scripts, but which can be counterintuitive when building large apps.

    Unlike most other languages, JavaScript is almost completely backwards compatible. New syntax and standard library methods are added often, but almost nothing is ever removed, since that would break too many existing websites.

    Since JavaScript has quirky features and since they likely won't be removed, it's important to understand the common patterns and idioms used by JavaScript developers in order to write high-quality software.

    Dynamic Typing

    JavaScript is dynamically typed, which means that type checking happens at runtime. Many developers see this as one of JavaScript's strengths. Some, however, prefer to have compile-time type checking. If you'd prefer compile-time type checking, consider heading to the TypeScript flavor of this site, TypeScript Express. If you're not sure what which to use, I recommend continuing here with regular JavaScript for now.

    Alright, let's dive in!