Build 15 JavaScript Projects – Vanilla JavaScript Course

Sharpen your JavaScript skills by building 15 projects using plain JavaScript without frameworks. In this tutorial course, you will be taught step-by-step how to build JavaScript projects.

💻 Code:
🔗 View completed projects:

✏️ Course created by John Smilga. Check out his YouTube channel:

🔗 John Smilga’s website:

⭐️ Course Contents ⭐️
⌨️ (00:00) Intro
⌨️ (07:01) Color Flipper
⌨️ (30:25) Counter
⌨️ (44:04) Reviews
⌨️ (1:11:29) Navbar
⌨️ (1:26:21) Sidebar
⌨️ (1:39:03) Modal
⌨️ (1:48:26) Questions
⌨️ (2:16:25) Menu
⌨️ (3:16:13) Video
⌨️ (3:32:45) Scroll
⌨️ (4:36:15) Tabs
⌨️ (4:58:53) Countdown
⌨️ (5:56:35) Lorem Ipsum
⌨️ (6:18:23) Grocery
⌨️ (8:01:14) Slider

Learn to code for free and get a developer job:

Read hundreds of articles on programming:

And subscribe for new videos on technology every day:

35 thoughts on “Build 15 JavaScript Projects – Vanilla JavaScript Course

  1. Sorry but i'm just start learn about coding and also my english is not good. I don´t understand how do you do to write some in the html document and automatically change at the site with styles. I use vsc as you and i also use the live server extension. But i see that when you write something at the site is already with css. I'm doing all the steps as you but my site is different.
    I hope I have explained my question well and u can solve my dude. Thanks for the tutorial!

  2. Math.floor isn't rounding UP. The floor function is the function that takes as input a real number x (which Math.random provides), and gives as output the greatest integer less than or equal to x. Meaning, 0.9 won't turn into 1, but into 0. Which is what we need, we have zero based array, right?

  3. I completely love Javascript, I tried learning it for continuous six months, I gave up and stopped for 2 weeks. And then suddenly I know most of the things I learned which I thought I don't remember.

    It's blessed Language!!

  4. 32:08 My reloading is not working. I got the message: Uncaught TypeError: btn is null in line 5 of app.js
    btn.addEventListener('click', function(){
    //Pega um número aleatório entre 0 – 2
    const randomNumber = getRandomNumber();

    I search in the Mozilla documentation. I didn't define btn as null, so I imagining if I not misreferrencing. I did exactly as you did, in index.html. What went wrong?

Leave a Reply

Your email address will not be published. Required fields are marked *