Open Playground
JS TutorialLesson #131

Project - localStorage Counter

In this project you will build a counter with buttons to:

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

0

+ - Reset Save Load

Project Skills

  • JavaScript Variables
  • JavaScript Functions
  • JavaScript HTML DOM
  • JavaScript Events (onclick attributes)
  • JavaScript localStorage (to Save and Restore the counter)

HTML Code

Example Code

html
Try it Yourself
## Counter

0

 +

 -

 Reset

 Save

 Load

// JavaScript code. See below.

1. Create the HTML

  • Add a header element
  • Add a

element displaying a number - Add 5 elements - Add an onclick attribute to each button ### Example ```html ## Counter 0

+

-

Reset

Save

Load

Example Code

html
Try it Yourself
---

## 2. Create a Script

- let count = 0 declares a counter
- Function updateCount() {} creates a function to update counter

### Example

html

// Declare a counter

let count = 0;

// Function to display the counter

function updateCount() {

document.getElementById("count").innerHTML = count;

}

Example Code

html
Try it Yourself
---

## 3: Add an Increase Counter Function

- Function increaseCount() {} creates an increase function
- count++ increases the counter
- updateCount() diplays the counter

### Example

javascript // Function to increase the counter

function increaseCount() {

count++;

updateCount();

}

Example Code

html
Try it Yourself
---

## 4: Add a Decrease Counter Function

- Function decreaseCount() {} creates a decrease function
- count-- decreases the counter
- updateCount() diplays the counter

### Example

javascript // Function to decrease the counter

function decreaseCount() {

count--;

updateCount();

}

Example Code

html
Try it Yourself
---

## 5: Add a Reset Counter Funtion

- Function resetCount() {} creates a reset function
- count = 0 resets the counter
- updateCount() diplays the counter

### Example

javascript function resetCount() {

count = 0;

updateCount();

}

Example Code

html
Try it Yourself
---

## 6: Create a Save Counter Function

- Function saveCount() {} creates a save function
- localStorage.setItem() saves the value.

### Example

javascript function saveCount() {

localStorage.setItem("count", count);

}

Example Code

html
Try it Yourself
---

## 7: Create a Load Counter Function

- Function loadCount() {} creates a load function
- localStorage.getItem() gets the value
- Number(saved) converts saved to numberstdisplays the value.
- updateCount() displays the value.

### Example

javascript function loadCount() {

let saved = localStorage.getItem("count");

if (saved !== null) {

count = Number(saved);

}

updateCount();

}

Example Code

html
Try it Yourself
---

## What Have You Learned?

- How to update HTML using JavaScript
- How to use button events (onclick)
- How to store and load values from localStorage
- How to keep your code organized with functions

---

## Exercises

---

### Exercice 1

Make the counter start at 10 instead of 0.

### Exercice 2

Prevent the counter from going below 0.

### Exercice 3

Automatically load the saved counter value when the page opens.

### Solutions

javascript // Declare the counter

let count = 10;

// Load the counter when the page opens

loadCount();

// Function to display the counter

function updateCount() {

document.getElementById("count").innerHTML = count;

}

// Function to increase the counter

function increaseCount() {

count++;

updateCount();

}

// Function to decrease the counter

function decreaseCount() {

if (count > 0) {

count--;

updateCount();

}

}

// Function to reset the counter

function resetCount() {

count = 10;

updateCount();

}

// Function to save the counter

function saveCount() {

localStorage.setItem("count", count);

}

// Function to load the counter

function loadCount() {

let saved = localStorage.getItem("count");

if (saved !== null) {

count = Number(saved);

}

updateCount();

} ```

Try saving the value, reload the page, and see if it load automatically.
JavaScript Projects > JavaScript Counter > A counter project with restore and save in localStorage. > JavaScript Event Listener > The counter project using event listener instead of onclick. > JavaScript To-Do List > A do-do list saved in an array in local storage. > JavaScript Modal Popup > A modal popup window that appears on top of the page. > JavaScript Form Validation > An HTML Form with form validation.

Interactive Code Examples

HTML Code

html
Try it Yourself
Interactive runnable JavaScript example from EA Academy.
Live Output Preview:

JS Example 2

html
Try it Yourself
JavaScript syntax and algorithm demonstration.
<h2>Counter</h2>



<p id="count" style="font-size:40px;">0</p>



<button onclick="increaseCount()">+</button>

<button onclick="decreaseCount()">-</button>

<button onclick="resetCount()">Reset</button>

<button onclick="saveCount()">Save</button>

<button onclick="loadCount()">Load</button>

JS Example 3

html
Try it Yourself
JavaScript syntax and algorithm demonstration.
<script>



// Declare a counter

let count = 0;



// Function to display the counter

function updateCount() {

  document.getElementById("count").innerHTML = count;

}


</script>

JS Example 4

javascript
Try it Yourself
JavaScript syntax and algorithm demonstration.
// Function to increase the counter

function increaseCount() {

  count++;

  updateCount();

}

JS Example 5

javascript
Try it Yourself
JavaScript syntax and algorithm demonstration.
// Function to decrease the counter

function decreaseCount() {

  count--;

  updateCount();

}

JS Example 6

javascript
Try it Yourself
JavaScript syntax and algorithm demonstration.
function resetCount() {

  count = 0;

  updateCount();

}