bugl
bugl
HomeLearnPatternsSearch
HomeLearnPatternsSearch

Loading lesson path

Learn/JavaScript

JavaScript

Debugging, Projects, and Reference

Use these sections for debugging workflows, mini projects, version notes, and reference lookups.

Lesson 1visual

JavaScript Errors

Errors Will Happen! When executing JavaScript code, different errors can occur. Errors can be coding errors made by the programmer, errors due to wrong input, and other unforeseeable things: Referenc…

4 min
Read lesson →
Lesson 2visual

JavaScript Debugging

JavaScript Debugging

4 min
Read lesson →
Lesson 3visual

JavaScript Statements

Statement Identifiers JavaScript statements start with a statement identifier to identify the action to be performed. Statement identifiers are reserved words (cannot be used as variable names or any…

2 min
Read lesson →
Lesson 4

Project - localStorage Counter

A Counter with Reset and Save In this project you will build a counter with buttons to: Increase the counter Decrease the counter Reset the counter Save the counter Load the counter + Reset Save Load…

4 min
Read lesson →
Lesson 5

ECMAScript 2026

New Features in JavaScript 2026 ECMAScript 2026 introduces several features focused on improving resource management, handling asynchronous operations, and enhancing data manipulation: New JavaScript…

5 min
Read lesson →
Lesson 6

JavaScript Silent Errors

Silent Errors JavaScript can fail siently. A silent error will not stop your program. The execution will continue. The reason for silent errors is historical: The first version of JavaScript did not…

2 min
Read lesson →
Lesson 7

JavaScript Debugging Console

JavaScript Debugging Console

2 min
Read lesson →
Lesson 8visual

JavaScript Reserved Words

In JavaScript you cannot use these reserved words as variables, labels, or function names: abstract arguments async * await * boolean break byte case catch char class * const * continue debugger defa…

2 min
Read lesson →
Lesson 9

Project - Event Listener

Using an Event Listener This is a copy of the previous project. Now using Event Listeners instead of Onclick Attributes. + Reset Save Load Using Event Listeners Using addEventListener() makes it easi…

3 min
Read lesson →
Lesson 10

ECMAScript 2025

New Features in JavaScript 2025 The 16th edition of the ECMAScript standard, released in June 2025, includes several enhancements to make JavaScript more readable and efficient. New Set Features in E…

10 min
Read lesson →
Lesson 11

JavaScript Error Statements

JavaScript Error Statements

3 min
Read lesson →
Lesson 12visual

JavaScript Debugging Breakpoints

Breakpoints, Watch, Scope Breakpoints let you pause JavaScript and inspect what is really happening. This is the most powerful debugging technique after using the console. What Is a Breakpoint A brea…

3 min
Read lesson →
Lesson 13visual

JavaScript Operators Reference

Complete Operators Reference Revised July 2025 Type Common Use Example Assignment Assigns values to variables x = 5 Arithmetic Performs arithmetic between variables x = y + 2 Comparison Compares vari…

5 min
Read lesson →
Lesson 14

Project - To-Do List

To-Do List Add Clear All In this project you will build a To-Do List. You will add tasks, remove tasks, and clear all tasks. The tasks will be saved in an Array in localStorage. You Will Learn How to…

4 min
Read lesson →
Lesson 15

ECMAScript 2024

New Features in JavaScript 2024 Feature Description Object.groupBy() Groups object elements according to values returned from a callback function Map.groupBy() Groups map elements according to values…

3 min
Read lesson →
Lesson 16visual

JavaScript Error Reference

The Error Object JavaScript has a built in error object that provides error information when an error occurs. The error object provides two useful properties: name and message. Error Object Propertie…

2 min
Read lesson →
Lesson 17visual

JavaScript Debugging Errors

Common Errors Explained JavaScript error messages look scary, but most of them mean very simple things. This page explains the most common errors in beginner-friendly language. Error messages are clu…

2 min
Read lesson →
Lesson 18visual

JavaScript Operator Precedence

Order of Operation Operator precedence describes the order in which operations are performed in an arithmetic expression. Multiplication ( * ) and division ( / ) have higher precedence than addition…

3 min
Read lesson →
Lesson 19visual

Project - Modal Popup

Modal Popup A modal is a popup window that appears on top of the page. The project will build a modal that can be closed in three ways: Click the close button (x) Click outside the modal Press the Es…

4 min
Read lesson →
Lesson 20

ECMAScript 2023

New Features in JavaScript 2023 Feature Description #! (Shebang) Tells the operating system which interpreter to use to execute the script New Array Features in 2023 Feature Description findLast() Re…

3 min
Read lesson →
Lesson 21

JavaScript Debugging Async

Debugging Async Code Async bugs are the hardest bugs for beginners. The code looks correct, but nothing seems to happen. Why Async Code Is Hard to Debug Async code runs later. This makes errors feel…

2 min
Read lesson →
Lesson 22visual

Project - Form Validation

In this project you will build a form with validation. The form will show error messages under each input field, and it will not submit until everything is valid. What You Will Learn How to validate…

6 min
Read lesson →
Lesson 23

ECMAScript 2022

New Features in JavaScript 2022 Supported in all modern browsers since March 2023. Feature Description Array at() Returns an indexed element from an array String at() Returns an indexed element from…

3 min
Read lesson →
Lesson 24visual

JavaScript Debugging Reference

Full JavaScript Console Reference Revised December 2026 Method Description assert() Logs a message only if the provided assertion is false. If true, nothing is outputted, which helps keep logs clean.…

2 min
Read lesson →
Lesson 25

ECMAScript 2021

New Features in JavaScript 2021 Feature Description Promise.any() Takes promises as input and returns a single promise String replaceAll() Replaces all occurrences of a substring in a string Numeric…

2 min
Read lesson →
Lesson 26visual

ECMAScript 2020

New Features in JavaScript 2020 Feature Description BigInt Stores values too big to store in a JavaScript number String matchAll() Searchs for all occurrences of a string in a string Promise.allSettl…

6 min
Read lesson →
Lesson 27visual

ECMAScript 2019

New Features in JavaScript 2019 Feature Description String trimStart() Removes whitespace from the start of a string String trimEnd() Removes whitespace from the end of a string Object.fromEntries Cr…

4 min
Read lesson →
Lesson 28

ECMAScript 2018

New Features in JavaScript 2018 Feature Description Asynchronous Iteration Allows the await keyword in for/of loops Promise Finally Schedules a function to be executed when a promise has been "fulfil…

4 min
Read lesson →
Lesson 29

ECMAScript 2017

New Features in JavaScript 2017 Feature Description String padStart() Pads the beginning of a string String padEnd() Pads the end of a string Object entries() Returns an array of the key/value pairs…

3 min
Read lesson →
Lesson 30

ECMAScript 2016

New Features in JavaScript 2016 Supported in all modern browsers since March 2017. Feature Description ** Raises the first operand to the power of the second **= Raises the value of a variable to the…

2 min
Read lesson →
Lesson 31

Javascript 2015 (ES6)

ECMAScript 2015 The second major revision to JavaScript. ECMAScript 2015 is also known as ES6. New Features in JavaScript 2015 (ES6) Feature Description The let keyword Declares a variable with block…

16 min
Read lesson →
Lesson 32

JavaScript 2009 (ES5)

ECMAScript 2009 The first major revision to JavaScript. ECMAScript 2009 is also known as ES5. ES5 Features Feature Description "use strict" Allows code to be executed in "strict mode" String [] acces…

12 min
Read lesson →
Lesson 33

JavaScript 1999 (ES3)

ECMAScript 3 (1999) The first revision to JavaScript. ECMAScript 1999 is also known as ES3. ES3 Features Feature Description Regular expressions Sequence of characters that forms a search pattern Err…

2 min
Read lesson →
Lesson 34

JavaScript Versions

Current JavaScript Version The current version is ES2025. ECMAScript is the official name of the JavaScript standard. JavaScript was invented by Brendan Eich in 1995 and became an ECMA standard in 19…

2 min
Read lesson →
Lesson 35

JavaScript History

JavaScript / ECMAScript was invented by Brendan Eich in 1995. It was developed for the Netscape browser, and then handed over to ECMA and became the ECMA-262 standard in 1997. What is ECMA? ECMA stan…

5 min
Read lesson →