Let's build a passenger counter app!
Setting up our JavaScript file
Write your first JavaScript variable
Basic mathematical operations
Reassigning and incrementing
The onclick event listener
Using functions to write less code
Write your first function
Write a function that logs the sum
Write a function that increments
The Document Object Model
Display the count with innerText
Write your first string variable
Log a greeting to the console
Improve the message with string concatenation
Personalize and Download Your App
Concatenate two strings in a function
Incrementing and decrementing
Rendering an error message
Setting Up a Local Dev Environment
Getting Started with GitHub Desktop
Edit with VS Code and Push to GitHub
Deploy and Share Your Solo Project
Let's build a Blackjack game!
Add the firstCard secondCard and sum
Your first if...else statement
if/else...if/else statement
The if...else statement for our game
Add the hasBlackJack variable
Let's practice boolean conditions
Make the start button work
Add to the sum when newCard is clicked
Rename the startGame function
Solving our cards problem with an array
Arrays with multiple data types
Adding and removing items from arrays
Push a new card to the array
Write your first array-based for loop
Use a loop to render cards
How can we avoid hard-coding card values?
Returning values in functions
Use a function to set the card values
Generating random numbers with Math.random()
Flooring the number with Math.floor()
Using Math.random() and Math.floor() to create a dice
Completing our dice function
Make getRandomCard() work
Complete getRandomNumber function
Assign values in the startGame function
Our new card feature is broken
Write your first logical operator
Only trigger newCard() if you're allowed to
Use an object to store player data
push pop unshift shift challenge
Let's build a Chrome Extension!
Style the button and input tag
Make the input button work with onclick
Refactor to addEventListener
Write your first addEventListener()
Create the myLeads array and inputEl
When to use let and const
Push to the myLeads array
Push the value from the input field
Use a for loop to log out leads
Create the unordered list
Render the leads in the unordered list
How to render <li> elements with innerHTML
Write your first innerHTML
Render the <li> elements with innerHTML
Use createElement() and append() instead of innerHTML
Improving the performance of our app
Create the render function
Write your first template string
Make the template string even more dynamic
Template strings on multiple lines
Refactor the app to use a template string
Deploying the Chrome Extension
Storing arrays in localStorage
Save the leads to localStorage
Get the leads from localStorage
Guess the expression - truthy or falsy?
Checking localStorage before rendering
Make the delete button work
How function parameters can improve our code
Write your first function parameter
Functions with multiple parameters
Numbers as function parameters
Refactor renderLeads() to use a parameter
How to get the current tab?
Use the Chrome API to get the tab
Log out items in an array
addEventListener and object in array
Convert string to number challenge
Create new Firebase Project
Create new Firebase Realtime Database
Set up Database Environment Variable
Aside: Push data to Firebase Realtime Database
Push a lead to Firebase Realtime Database
Aside: Get a snapshot of data using onValue
Console log data inside of onValue
Aside: Turn an Object into an Array
Render all items using onValue
Aside: Delete all data using remove
Delete all leads using remove
Add label placeholder and max-width
Aside: Setting the viewport
Adding viewport with meta tag
Adding favicon and phone icons
Aside: Web Application Manifest
Turning the web app into "mobile" app
Congrats on completing the Learn JavaScript course!