Starting Now: iLoveCoding courses are completely FREE. No login or signup required.

Learn JavaScript Correctly - Beginner to Advance

JavaScript is a must-know programming language for a modern developer. With clearly explained concepts in short and to the point screencast videos, learn the basic and advanced concepts of modern JavaScript (ES6+ concepts included). Build professional-grade apps and while getting prepared to answer tough interview questions. (Cheatsheets, references, and tools included.)

FREELevel: Advance638:43 mins131 lessons
Course content
Lessons #1: Tool you will need FREE
2:25 mins
Lessons #2: History and Background of JavaScript FREE
8:06 mins
Lessons #3: Understanding Node.js and the browser FREE
7:05 mins
Lessons #4: Quick intro to text-editors and VS Code FREE
4:14 mins
Lessons #5: Project Setup FREE
2:34 mins
Lessons #6: Types in JavaScript - Part 1 FREE
6:17 mins
Lessons #7: Types in JavaScript - Part 2 FREE
4:15 mins
Lessons #8: Intro to Objects in JavaScript FREE
5:24 mins
Lessons #9: Creating Variables and accessing values FREE
5:59 mins
Lessons #10: Using the 'typeof' operator FREE
4:03 mins
Lessons #11: Basic Vocabulary in JavaScript FREE
6:40 mins
Lessons #12: Dynamic vs. Static Type Languages FREE
2:02 mins
Lessons #13: Intro to Arrays in JavaScript FREE
4:54 mins
Lessons #14: More on Arrays: Weird Parts and Length FREE
2:40 mins
Lessons #15: Type Checking Arrays FREE
1:25 mins
Lessons #16: Intro to Functions in JavaScript - Part 1 FREE
6:02 mins
Lessons #17: Intro to Functions in JavaScript - Part 2 FREE
5:44 mins
Lessons #18: Intro to Functions in JavaScript - Part 3 FREE
5:40 mins
Lessons #19: Deeper Realizations on Object, function and method FREE
5:30 mins
Lessons #20: Project: Simple Age Calculator FREE
6:02 mins
Lessons #21: Function Statement vs. Function Expression FREE
3:58 mins
Lessons #22: Hoisting: How and when variables are created. FREE
7:01 mins
Lessons #23: Function Hoisting FREE
4:52 mins
Lessons #24: Scope in JavaScript - Part 1 FREE
4:57 mins
Lessons #25: Scope in JavaScript - Part 2 FREE
3:02 mins
Lessons #26: Scope Chain: The hierarchy of scope. FREE
3:45 mins
Lessons #27: Lexical Environment (Lexical scope) in JavaScript FREE
6:00 mins
Lessons #28: Code formatting and coding ethics FREE
6:31 mins
Lessons #29: Arithmetic Operators in JavaScript FREE
5:46 mins
Lessons #30: Assignment Operators in JavaScript FREE
3:19 mins
Lessons #31: Logical Operators in JavaScript FREE
5:59 mins
Lessons #32: Triple Equal '===' operator FREE
6:23 mins
Lessons #33: Double Equal '==' Operator FREE
4:31 mins
Lessons #34: Comparison Operators in JavaScript FREE
2:39 mins
Lessons #35: Conversion Operators in JavaScript FREE
4:42 mins
Lessons #36: Increment '++' and Decrement '--' operators FREE
2:35 mins
Lessons #37: Operator Precedence in JavaScript FREE
4:01 mins
Lessons #38: Operator Associativity in JavaScript FREE
4:12 mins
Lessons #39: if else statement in JavaScript FREE
7:03 mins
Lessons #40: Ternary Operator in JavaScript FREE
2:47 mins
Lessons #41: Switch statements in JavaScript FREE
5:26 mins
Lessons #42: For loop in JavaScript - Part 1 FREE
6:54 mins
Lessons #43: For loop in JavaScript - Part 2 FREE
5:21 mins
Lessons #44: While loop in JavaScript FREE
4:15 mins
Lessons #45: Do while loop in JavaScript FREE
2:34 mins
Lessons #46: Creating variables with 'var', 'let' & 'const' FREE
4:52 mins
Lessons #47: More on 'const' FREE
2:40 mins
Lessons #48: 'setInterval' & 'clearInterval' FREE
3:40 mins
Lessons #49: 'setTimeout' & 'clearTimeout' FREE
1:25 mins
Lessons #50: Call Stack, Event Loop and Message Queue - Part 1 FREE
5:25 mins
Lessons #51: Call Stack, Event Loop and Message Queue - Part 2 FREE
4:41 mins
Lessons #52: Call Stack, Event Loop and Message Queue - Part 3 FREE
6:37 mins
Lessons #53: Call Stack, Event Loop and Message Queue - Part 4 FREE
3:39 mins
Lessons #54: Callback functions in JavaScript FREE
2:23 mins
Lessons #55: Special 'arguments' keyword in a function FREE
3:56 mins
Lessons #56: Using 'arguments' in a function FREE
3:45 mins
Lessons #57: Spread Operator '...' in JavaScript FREE
5:00 mins
Lessons #58: Default values of function parameters FREE
4:56 mins
Lessons #59: By Reference, by value FREE
7:49 mins
Lessons #60: Browser API - Part 1 FREE
4:03 mins
Lessons #61: Browser API - Part 2 FREE
6:03 mins
Lessons #62: DOM: Document Object Model FREE
4:47 mins
Lessons #63: Query the DOM nodes FREE
5:35 mins
Lessons #64: Modify DOM nodes FREE
6:30 mins
Lessons #65: Modify element class(es) FREE
4:17 mins
Lessons #66: Create Node/Elements for the DOM FREE
6:37 mins
Lessons #67: Remove Node from DOM FREE
5:02 mins
Lessons #68: Events: Adding event listeners to DOM FREE
6:21 mins
Lessons #69: Removing event listeners from DOM FREE
6:56 mins
Lessons #70: Project: To-Do List App with Vanilla JavaScript - Part 1 FREE
4:46 mins
Lessons #71: Project: To-Do List App with Vanilla JavaScript - Part 2 FREE
2:01 mins
Lessons #72: Project: To-Do List App with Vanilla JavaScript - Part 3 FREE
4:28 mins
Lessons #73: Project: To-Do List App with Vanilla JavaScript - Part 4 FREE
6:51 mins
Lessons #74: Project: To-Do List App with Vanilla JavaScript - Part 5 FREE
2:27 mins
Lessons #75: Project: To-Do List App with Vanilla JavaScript - Part 6 FREE
4:39 mins
Lessons #76: Project: To-Do List App with Vanilla JavaScript - Part 7 FREE
4:16 mins
Lessons #77: Project: To-Do List App with Vanilla JavaScript - Part 8 FREE
3:49 mins
Lessons #78: Project: To-Do List App with Vanilla JavaScript - Part 9 FREE
5:17 mins
Lessons #79: Project: To-Do List App with Vanilla JavaScript - Part 10 FREE
4:09 mins
Lessons #80: To-Do List App Homework - Solution FREE
4:03 mins
Lessons #81: Event Bubbling in DOM - Part 1 FREE
2:50 mins
Lessons #82: Event Bubbling in DOM - Part 2 FREE
5:32 mins
Lessons #83: Clear all tasks FREE
3:09 mins
Lessons #84: DomContentLoaded Event FREE
7:30 mins
Lessons #85: More on Events + Homework FREE
1:28 mins
Lessons #86: Global Scope: Avoiding Pitfalls - Part 1 FREE
3:23 mins
Lessons #87: Global Scope: Avoiding Pitfalls - Part 2 FREE
5:56 mins
Lessons #88: IIFE: Immediately Invoked Function Expression FREE
6:42 mins
Lessons #89: IIFE Example FREE
3:25 mins
Lessons #90: Arrow Functions Explained Correctly - Part 1 FREE
7:15 mins
Lessons #91: Arrow Functions Explained Correctly - Part 2 FREE
3:10 mins
Lessons #92: Closure in JavaScript Explained Correctly - Part 1 FREE
5:06 mins
Lessons #93: Closure in JavaScript Explained Correctly - Part 2 FREE
4:04 mins
Lessons #94: Closure in JavaScript Explained Correctly - Part 3 FREE
4:34 mins
Lessons #95: Project: Tooltip effect - Part 1 FREE
8:48 mins
Lessons #96: Project: Tooltip effect - Part 2 FREE
6:07 mins
Lessons #97: Project: Tooltip effect - Part 3 FREE
9:00 mins
Lessons #98: Project: Tooltip effect - Part 4 FREE
1:48 mins
Lessons #99: Project: Tooltip effect - Part 5 FREE
5:06 mins
Lessons #100: Template literals (Template Strings) in JavaScript FREE
3:55 mins
Lessons #101: Prototype: The builtin features FREE
6:40 mins
Lessons #102: Prototype of String Constructor FREE
5:10 mins
Lessons #103: Prototype of Number and Boolean Constructor FREE
4:38 mins
Lessons #104: .filter() method of Array in JavaScript FREE
7:31 mins
Lessons #105: .filter() method of Array in JavaScript - Part 2 FREE
3:56 mins
Lessons #106: .filter() Homework FREE
5:59 mins
Lessons #107: .find() method of Array in JavaScript FREE
1:42 mins
Lessons #108: .forEach() method of Array in JavaScript FREE
1:11 mins
Lessons #109: .map() method of Array in JavaScript FREE
4:26 mins
Lessons #110: .reduce() method of Array in JavaScript FREE
6:36 mins
Lessons #111: Date object in JavaScript FREE
6:44 mins
Lessons #112: Math object in JavaScript FREE
4:25 mins
Lessons #113: Promise in JavaScript - Part 1 FREE
6:35 mins
Lessons #114: Promise in JavaScript - Part 2 FREE
4:53 mins
Lessons #115: Promise in JavaScript - Part 3 FREE
8:06 mins
Lessons #116: Promise in JavaScript - Part 4 FREE
4:28 mins
Lessons #117: Using fetch() to connect with HTTP FREE
7:50 mins
Lessons #118: Project: Get list of Countries FREE
5:53 mins
Lessons #119: Project: Get population by country - Part 1 FREE
4:37 mins
Lessons #120: Project: Get population by country - Part 2 FREE
5:46 mins
Lessons #121: Project + Homework: Get population by country - Part 3 FREE
6:58 mins
Lessons #122: 'this' - Understand the 'this' keyword once and for all - Part 1 FREE
4:45 mins
Lessons #123: 'this' - Understand the 'this' keyword once and for all - Part 2 FREE
3:47 mins
Lessons #124: 'this' - Using call() to modify 'this' FREE
4:38 mins
Lessons #125: 'this' - Using apply() to modify 'this' FREE
1:29 mins
Lessons #126: 'this' - Using bind() to modify 'this' FREE
3:00 mins
Lessons #127: Avoid Pitfall: 'this' inside an arrow function FREE
3:00 mins
Lessons #128: Avoid Pitfall: 'this' inside a function inside a method FREE
4:37 mins
Lessons #129: Using Constructor - Part 1 FREE
8:25 mins
Lessons #130: Using Constructor - Part 2 FREE
4:30 mins
Lessons #131: 'prototype' property of constructor FREE
8:21 mins

JavaScript Cheatsheet

Download it, print it and keep it next to your desk.

JavaScript Cheatsheet Thumb


Changelog:

Update #4:

Cheatsheet updated to reference concepts of var, let and const

Update #3:

Added additional topics:

  • Understanding 'this' keyword
  • 3 scenarios that impact the 'this' keyword
  • Understanding Constructors function in JavaScript
  • When and how to use custom constructors
  • Using built-in constructors
  • Using Prototype property (to improve performance)

Update #2:

Added additional topics:

  • Clear all tasks (From To-Do List App)
  • DomContentLoaded Event
  • Homework on Events
  • Global Scope and Avoiding Pitfalls
  • IIFE: Immediately Invoked Function Expression
  • Arrow Functions
  • Closures
  • Project: Tooltip Effect
  • Template Literals
  • Prototype
  • Array methods: .filter() .find() .forEach() .map() .reduce()
  • Date
  • Math
  • Promise
  • Fetch
  • Project: Get Population By Country

Update #1:

Launched the course with the following main topics:

  • Tools and Setup
  • History of JavaScript
  • JavaScript Engine in Node.js and the Browser
  • Types in JavaScript: Primitive and Objects
  • Functions, Arrays, Methods, Variables, Expression, Statement
  • Type checking
  • Static vs Dynamic type languages
  • Variable Hoisting & Function Hoisting 
  • Scope, Scope Chain, and Lexical Environment
  • Code Formatting and coding ethics
  • Operators: Arithmetic, assignment, logical, comparison etc
  • === vs == operator
  • setTimeout, setInterval, clearTimeout, clearInterval
  • Call Stack, Event Loop, and Message Queue
  • "arguments" keyword
  • Spread Operator "..."
  • Default Parameters
  • By reference vs by value
  • Understanding the browser + Browser API
  • Understanding the DOM
  • Query, Create, Update, Delete DOM elements
  • Events and Event Listeners
  • Project: To-Do List App
  • Homework-Solution: To-Do List App
  • Event Bubbling

Full Video Transcript

Please ignore typos, it's a computer who transcribed it.

Hello and welcome to probably the best beginner to advanced course on JavaScript on planet Internet. In this course you will go from a complete newbie knowing nothing about programming or JavaScript for that matter to becoming comfortable in building real-world apps; And understanding each line of code that you actually write.

Now before I go further I want to say good job on choosing JavaScript as a programming language to learn. You may already know that JavaScript is the world's most versatile programming language - meaning you can do more things with JavaScript than any other programming language.

JavaScript is used to build web applications, website APIs, backend, front-end, user interfaces for TV's, mobile apps, websites and even airport terminal applications. In fact, I was one of the programmers who built the United Airlines airport terminal application with JavaScript. Well that's a story for another day, but the fact of the matter is you have made a wise choice to learning JavaScript. It's going to serve you well in your career now, and in the long run.

Now let's see what you will be learning in this course:

There are only three goals for this course.

Firstly, have you learn the fundamentals of JavaScript.

Secondly, have you start thinking like a software engineer.

And thirdly, have you start building real-world apps - Someone who can think logically on how to break down problems into logical chunks and build something useful piece by piece.

When learning how to code and there are a few challenges that people encounter. One of the biggest challenges is that programming has a lot of complex words like closure, lexical scope, boolean, array, function, constructor, scope, operators, coercion, public and private functions, and so much more.

Now the thing is that all of these terms look complicated, sound complicated, but if understood simply they're very basic and simple. That's where this course shines. I will not only teach you how to code but I will expose you with these words so you understand them and even start talking like a developer.

The second place where this course shines is that I explain to you things simply. I use easy to understand words and I do not make assumptions that you'll have previous knowledge of other concepts. So everything I teach in this course starts from the baseline and I build your knowledge one lesson at a time until you fully understand all the major concepts.

The third and very important reason why this course will help you better is that I always give you practical examples on when and how to apply your knowledge to build real-world solutions. Many books, blogs, bootcamps, and lectures just go on in the technical conceptual side. In this course, you will learn not just the conceptual side of things but also the practical side on everything you learn. When you tie your learning with examples and real use-cases, your knowledge will actually sink in on a deeper level and you'll be able to become a much better developer in the end.

In this course, we will focus on building a solid foundation of JavaScript. So in the future when you are learning additional technologies your learning will be much more smoother because you have a solid foundation.

In this course. You will learn:

  • What is JavaScript and how it's different than other programming languages.
  • What are the basic types in JavaScript and how to use them.
  • How to use JavaScript to build a website interfaces and backend server-side applications with node.js.
  • How to create simple and complex objects to structure your application.
  • How to use functions and scope to control the flow of your application.
  • How to use the new features of JavaScript like the "spread operator", "const", "let", "promise" and much more.
  • We will learn the advanced concepts of "closure", the "this" keyword and really understand them at a very core level, so you are actually a good developer.
  • We will learn about the DOM and how to use vanilla JavaScript to build apps.
  • We will learn about events and how JavaScript is a single-threaded environment and still extremely fast and performant.

    There is a reason why PayPal, Uber, LinkedIn, and many other companies are using JavaScript to build their apps.
  • We will learn about "arrow function", "coercion", "event loop" and so much more.
  • You will learn about how to debug your applications and understand the error messages that you see on the screen.
  • You see errors and bugs are common. No app is created without having errors.

    So most new developers think that bugs are bad, but actually, they're not. Having bugs or error messages is a normal process in a developers life.

So I will make you comfortable that when you see a bug or an error message you're very comfortable in seeing what it is recognizing it and then fixing the problem. This is just the normal flow of a developers life. 

Don't iPhone have bugs? Doesn't Microsoft products have bugs? They are the technology giants. They build technologies so it's a great realization for us to have that bugs are normal. It's our job as a developer to understand these errors and earn how to fix them. I will also show you how to use the dev tools built inside Google Chrome to troubleshoot your apps and resolve bugs.

You will learn how to connect your apps with third-party API and get information from them and use it in your apps. Now keep in mind all these complicated words that I've used so far, you will understand all of them because I will take you piece by piece and explain them all to you. I will give you a cheat sheets homework and examples along the way so you understand all of the concepts.

Along the way you will build a few apps like a "todo list app", a "clock app" a "Tap feature" so you understand things at its core and how to apply these concepts.

Just so this course does not become overly long, you will find a lot of practice projects lessons outside of this course. So in the member's area often of coding so you get a ton of practice on building things and applying your knowledge.

Imagine you finally conquering your fear of coding. Imagine you are finally thinking and building like a software engineer. Imagine your starting or enhancing your career as a software engineer. And imagine finally that your understanding JavaScript at its core and understanding what you see on the screen and building real-world stuff.

If all this excites you, let's get started.

Become a confident software developer with mentor support!
Get Started
Already have an account? Please Login