Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Programming in JavaScript

Standard Library and Imports

JavaScript has a built-in standard library available in all environments. In Node.js, modules can be imported using require() or import. Some examples:

Comments

// single line comment
/* multi
line
comment */

Data Types and Variables

Each variable is a container for a value. JavaScript is dynamically typed, so the type is inferred from the value. Variables are declared using let, const, or var.

User Input and Output

In a browser, console.log() prints to the developer console. In Node.js, the readline module is needed for user input.

console.log("Hello, World!");            // printing to the console

// Reading user input in Node.js
import readline from 'readline';

const rl = readline.createInterface({ input: process.stdin });

rl.question("What is your name? ", (name) => {
    console.log("Hello " + name);
    rl.close();
});

Operators

Operators are used to manipulate variables in different ways.

Arithmetic (mainly used for numbers):

+  // Addition
-  // Subtraction
*  // Multiplication
/  // Division
%  // Modulus (gives the remainder)
** // Exponentiation
++ // Increment (adds 1 to variable)
-- // Decrement (subtracts 1 from variable)

Assignment Operators (Shorthand version of doing an operation and then assigning it to the variable):

+=
-=
*=
/=
%=
**=

Comparison Operators (Compares two statements and returns a boolean):

===  // strict equality (checks value AND type)
!==  // strict inequality
>
<
>=
<=

Logical Operators (Can also compare two statements and returns a boolean):

&&  // and
||  // or
!   // not

Strings

To use strings, no imports are needed as they are built into JavaScript.

let a = "Hello";
let b = " World";

// String concatenation (adding two strings together will create a new string that contains both strings)
let c = a + b;

// Returns the length of the string
let length = c.length;

// Accessing a character of the string using an index
let firstChar = c[0];

// Template literals (another way to build strings using backticks, expressions go inside ${})
let d = `${a}${b}`;

// Escape characters (special characters that can be added to a string)
\' // Single quote
\" // Double quote
\\ // Backslash
\n // New line
\t // Tab

// Common string methods
c.toUpperCase();              // returns the string in all caps
c.toLowerCase();              // returns the string in all lowercase
c.includes("Hello");          // returns true if the string contains the given substring
c.slice(0, 5);                // returns a portion of the string (start index, end index)
c.replace("Hello", "Hi");     // replaces the first occurrence of a substring with another
c.trim();                     // removes whitespace from both ends of the string

Statements and Loops

// If statement
let a = 5;
let b = 3;
if (a > b) {
  console.log("a is greater");
} 
else if (b > a) {
  console.log("b is greater");
} 
else {
  console.log("a is equal to b");
}

// While loop
let i = 0;
while (i < 5) {
  console.log(i);
  i++;
}

// For loop
for (let i = 0; i < 5; i++) {
  console.log(i);
}

// For...of loop (loops over the elements of an array)
let fruits = ["apple", "banana", "orange"];
for (const fruit of fruits) {
  console.log(fruit);
}

// Break & continue statements
// when placed inside a loop and break is reached, the loop will stop and move to the next line of code after the loop
break;
// when placed inside a loop and continue is reached, the loop will skip the remaining lines of code after the continue statement and the loop will run its next iteration
continue;

Running JavaScript

Unlike C or C++, JavaScript does not need to be compiled before running. How you run it depends on what you are building and how far along you are.

For basic practice, the easiest option is to use an online environment like JSFiddle or JSconsole. These run entirely in the browser with no setup required, and give you instant feedback as you write code — making them ideal for experimenting with the concepts in this guide.

For more advanced work, you will want to run JavaScript locally from the command line. Node.js and Deno are the two most popular runtimes for this. Once installed, you can run any .js file with node filename.js or deno run filename.js. This is also where features like File I/O and importing modules become available. For production projects, NPM (bundled with Node.js) or Yarn are used to manage dependencies and scripts. A project is initialized with npm init or yarn init, which creates a package.json file that tracks your project’s configuration and installed packages.