Udemy
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Development
Web Development Data Science Mobile Development Programming Languages Game Development Database Design & Development Software Testing Software Engineering Development Tools No-Code Development
Business
Entrepreneurship Communications Management Sales Business Strategy Operations Project Management Business Law Business Analytics & Intelligence Human Resources Industry E-Commerce Media Real Estate Other Business
Finance & Accounting
Accounting & Bookkeeping Compliance Cryptocurrency & Blockchain Economics Finance Finance Cert & Exam Prep Financial Modeling & Analysis Investing & Trading Money Management Tools Taxes Other Finance & Accounting
IT & Software
IT Certification Network & Security Hardware Operating Systems Other IT & Software
Office Productivity
Microsoft Apple Google SAP Oracle Other Office Productivity
Personal Development
Personal Transformation Personal Productivity Leadership Career Development Parenting & Relationships Happiness Esoteric Practices Religion & Spirituality Personal Brand Building Creativity Influence Self Esteem & Confidence Stress Management Memory & Study Skills Motivation Other Personal Development
Design
Web Design Graphic Design & Illustration Design Tools User Experience Design Game Design Design Thinking 3D & Animation Fashion Design Architectural Design Interior Design Other Design
Marketing
Digital Marketing Search Engine Optimization Social Media Marketing Branding Marketing Fundamentals Marketing Analytics & Automation Public Relations Advertising Video & Mobile Marketing Content Marketing Growth Hacking Affiliate Marketing Product Marketing Other Marketing
Lifestyle
Arts & Crafts Beauty & Makeup Esoteric Practices Food & Beverage Gaming Home Improvement Pet Care & Training Travel Other Lifestyle
Photography & Video
Digital Photography Photography Portrait Photography Photography Tools Commercial Photography Video Design Other Photography & Video
Health & Fitness
Fitness General Health Sports Nutrition Yoga Mental Health Dieting Self Defense Safety & First Aid Dance Meditation Other Health & Fitness
Music
Instruments Music Production Music Fundamentals Vocal Music Techniques Music Software Other Music
Teaching & Academics
Engineering Humanities Math Science Online Education Social Science Language Teacher Training Test Prep Other Teaching & Academics
AWS Certification Microsoft Certification AWS Certified Solutions Architect - Associate AWS Certified Cloud Practitioner CompTIA A+ Cisco CCNA Amazon AWS AWS Certified Developer - Associate CompTIA Security+
Graphic Design Photoshop Adobe Illustrator Drawing Digital Painting InDesign Character Design Canva Figure Drawing
Life Coach Training Neuro-Linguistic Programming Personal Development Mindfulness Personal Transformation Meditation Life Purpose Coaching Neuroscience
Web Development JavaScript React CSS Angular PHP WordPress Node.Js Python
Google Flutter Android Development iOS Development Swift React Native Dart Programming Language Mobile Development Kotlin SwiftUI
Digital Marketing Google Ads (Adwords) Social Media Marketing Google Ads (AdWords) Certification Marketing Strategy Internet Marketing YouTube Marketing Email Marketing Retargeting
SQL Microsoft Power BI Tableau Business Analysis Business Intelligence MySQL Data Analysis Data Modeling Big Data
Business Fundamentals Entrepreneurship Fundamentals Business Strategy Online Business Business Plan Startup Freelancing Blogging Home Business
Unity Game Development Fundamentals Unreal Engine C# 3D Game Development C++ 2D Game Development Unreal Engine Blueprints Blender
2021-01-14 10:15:37
30-Day Money-Back Guarantee

This course includes:

  • 52 hours on-demand video
  • 75 articles
  • 696 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Assignments
Development Programming Languages JavaScript

JavaScript - The Complete Guide 2021 (Beginner + Advanced)

Modern JavaScript from the beginning - all the way up to JS expert level! THE must-have JavaScript resource in 2021.
Rating: 4.6 out of 54.6 (12,304 ratings)
62,977 students
Created by Academind by Maximilian Schwarzmüller, Maximilian Schwarzmüller
Last updated 11/2020
English
English
30-Day Money-Back Guarantee

What you'll learn

  • JavaScript from scratch - beginner to advanced
  • All core features and concepts you need to know in modern JavaScript development
  • Everything you need to become a JavaScript expert and apply for JavaScript jobs
  • Project-driven learning with plenty of examples
  • All about variables, functions, objects and arrays
  • Object-oriented programming
  • Deep dives into prototypes, JavaScript engines & how it works behind the scenes
  • Manipulating web pages (= the DOM) with JavaScript
  • Event handling, asynchronous coding and Http requests
  • Meta-programming, performance optimization, memory leak busting
  • Testing, security and deployment
  • And so much more!
Curated for the Udemy for Business collection

Course content

36 sections • 615 lectures • 52h 36m total length

  • Preview01:50
  • Preview03:44
  • Preview08:57
  • Join our Online Learning Community
    00:21
  • Preview03:14
  • Preview03:24
  • Preview04:40
  • Preview06:00
  • Preview02:36
  • Preview01:01
  • Preview04:02
  • Preview06:03
  • Preview11:12
  • Preview02:20

  • Module Introduction
    01:17
  • Setting Up the Project
    04:25
  • More on Version Control & Git
    00:35
  • Adding JavaScript to the Website
    06:42
  • Introducing Variables & Constants
    05:17
  • Declaring & Defining Variables
    07:10
  • Working with Variables & Operators
    06:17
  • Variables & Operators
    6 questions
  • Understanding the Starting Code
    01:21
  • Data Types: Numbers & Strings (Text)
    06:01
  • Using Constants
    05:11
  • More on Strings
    15:51
  • Data Types & Constants
    5 questions
  • Time to Practice: Variables, Constants, Operators & Core Data Types
    1 question
  • Introducing Functions
    05:50
  • Adding A Custom Function
    11:22
  • Code Styles, Conventions & Syntax
    01:53
  • Returning Values
    04:31
  • The (Un)Importance of Code Order
    04:34
  • An Introduction to Global & Local Scope
    05:31
  • "Shadowed Variables"
    00:48
  • More about the "return" Statement
    02:24
  • Executing Functions "Indirectly"
    11:10
  • "Indirect" vs "Direct" Function Execution - Summary
    01:09
  • Functions & Scope
    6 questions
  • Time to Practice: Functions
    1 question
  • Converting Data Types
    06:14
  • Mixing Numbers & Strings
    00:32
  • Splitting Code into Functions
    05:49
  • Connecting all Buttons to Functions
    07:43
  • Working with Code Comments
    04:09
  • More Operators!
    06:39
  • More Core Data Types!
    04:31
  • Using Arrays
    08:53
  • Creating Objects
    06:02
  • Objects - Common Syntax Gotchas
    00:33
  • Accessing Object Data
    02:51
  • Arrays & Objects
    5 questions
  • Adding a Re-Usable Function That Uses Objects
    05:24
  • undefined, null & NaN
    06:20
  • The "typeof" Operator
    03:12
  • "undefined", "null" & "NaN"
    4 questions
  • Importing Scripts Correctly with "defer" & "async"
    14:37
  • Importing JavaScript - Summary
    00:06
  • Wrap Up
    02:13
  • Useful Resources & Links
    00:23

  • Module Introduction
    01:28
  • Efficient Development & Debugging - An Overview
    03:18
  • Configuring the IDE Look & Feel
    02:25
  • Using Shortcuts
    04:12
  • Working with Auto-Completion & IDE Hints
    04:34
  • Installing IDE Extensions
    02:04
  • Tweaking Editor Settings
    02:15
  • Utilizing Different IDE Views
    01:41
  • Finding Help & Working with MDN
    05:53
  • The ECMAScript Standard
    00:16
  • How to "google" Correctly
    01:44
  • Debugging JavaScript - An Overview
    03:17
  • An Error Message! No Reason To Panic!
    04:46
  • Using console.log() to look "into the Code"
    03:49
  • Next-Level Debugging with the Chrome Devtools & Breakpoints
    08:20
  • Testing Code Changes Directly in the Devtools
    02:05
  • Debugging Code directly Inside VS Code
    04:55
  • Wrap Up
    01:22
  • Useful Resources & Links
    00:12

  • Module Introduction
    02:26
  • Introducing "if" Statements & Boolean (Comparison) Operators
    09:26
  • Using Booleans in Conditions & More on Text Comparisons
    01:05
  • Using "if" Statements
    07:23
  • Working with "if", "else" and "else-if"
    05:10
  • Beware When Comparing Objects & Arrays for Equality!
    04:06
  • The Logical AND and OR Operators
    09:10
  • Understanding Operator Precedence
    07:20
  • if & Boolean Operators - The Basics
    7 questions
  • Beyond true/ false: "Truthy" and "Falsy" Values
    07:30
  • Coercion vs Conversion
    01:08
  • Falsy and Truthy Values
    4 questions
  • Setting Up a Bigger Example Project (The "Monster Killer")
    02:59
  • Adding an "Attack" Function
    07:57
  • Using "if" Statements for Checking the Win-Condition
    09:17
  • Adding More "if" Statements & A "Strong Attack" Functionality
    07:41
  • Time for a "Heal Player" Functionality!
    10:15
  • Controlling the Conditional Bonus Life (Without Boolean Operators!)
    05:59
  • Adding a "Reset Game" Functionality
    06:00
  • Validating User Input
    06:17
  • Utilizing Global Constants as Identifiers in Conditional Code
    03:20
  • Adding a Conditional Battle Log
    16:37
  • Introducing the Ternary Operator
    07:31
  • A Bit of Theory: Statements vs Expressions
    01:40
  • Logical Operator "Tricks" & Shorthands
    12:58
  • Logical Operators - A Quick Summary
    01:03
  • Logical Operators & How They Work
    8 questions
  • Working with the "switch-case" Statement
    07:10
  • Introducing Loops
    06:40
  • The "for" Loop
    07:38
  • The "for-of" Loop
    05:16
  • The "for-in" Loop
    06:49
  • The "while" & "do-while" Loops
    08:00
  • Loops - Basics
    7 questions
  • Time to Practice: Control Structures
    1 question
  • Controlling Loops with "break"
    08:11
  • Controlling Iterations with "continue"
    02:21
  • More Control with Labeled Statements
    06:26
  • break & continue
    6 questions
  • Error Handling with "try-catch" - An Introduction
    02:25
  • Throwing Custom Errors
    05:16
  • Working with "try-catch" to Catch & Handle Errors
    08:14
  • Error Handling
    3 questions
  • Wrap Up
    03:21
  • Useful Resources & Links
    00:10

  • Module Introduction
    01:43
  • ES5 vs ES6+ ("Next Gen JS") - Evolution of JavaScript
    08:14
  • var vs let & const - Introducing "Block Scope"
    14:32
  • Understanding "Hoisting"
    04:07
  • Strict Mode & Writing Good Code
    05:46
  • "JavaScript Specialties"
    3 questions
  • How Code is Parsed & Compiled
    08:16
  • Inside the JavaScript Engine - How the Code Executes
    15:59
  • [DEEP DIVE] JavaScript Language vs Browser APIs
    01:42
  • Primitive vs Reference Values
    19:24
  • Garbage Collection & Memory Management
    12:00
  • Wrap Up
    01:55
  • Useful Resources & Links
    00:10

  • Module Introduction
    01:31
  • Recapping Functions Knowledge - What We Know Thus Far
    01:52
  • Parameters vs Arguments
    00:26
  • Functions vs Methods
    05:46
  • Functions are Objects!
    02:47
  • Function Expressions: Storing Functions in Variables
    05:12
  • Function Expressions vs Function Declarations
    02:47
  • Anonymous Functions
    05:54
  • Working on the Project: Adding User Choices to the Game
    07:44
  • Implementing the Core Game Logic
    07:20
  • Introducing Arrow Functions
    08:41
  • Different Arrow Function Syntaxes
    01:08
  • Creating Functions
    3 questions
  • Outputting Messages to the User
    03:53
  • Default Arguments in Functions
    10:45
  • Introducing Rest Parameters ("Rest Operator")
    08:57
  • Creating Functions Inside of Functions
    03:04
  • Understanding Callback Functions
    06:09
  • Time to Practice: Functions
    1 question
  • Working with "bind()"
    08:39
  • Functions - Advanced
    3 questions
  • Adding bind() to the Calculator Project
    03:47
  • call() and apply()
    01:18
  • Wrap Up
    02:10
  • Useful Resources & Links
    00:09

  • Module Introduction
    01:48
  • What's the "DOM"?
    06:00
  • Document and Window Object
    06:20
  • Understanding the DOM and how it's created
    07:07
  • Nodes & Elements - Querying the DOM Overview
    05:55
  • Selecting Elements in the DOM
    09:54
  • Summary: Node Query Methods
    01:00
  • Exploring and Changing DOM Properties
    07:37
  • Attributes vs Properties
    08:58
  • Selecting Multiple Elements & Summary
    05:13
  • DOM Basics
    5 questions
  • Time to Practice: DOM Querying
    1 question
  • Traversing the DOM - Overview
    06:22
  • Traversing Child Nodes
    09:15
  • Using parentNode & parentElement
    05:01
  • Selecting Sibling Elements
    04:05
  • DOM Traversal vs Query Methods
    04:35
  • Styling DOM Elements
    12:18
  • Creating Elements with JS - Overview
    02:42
  • Adding Elements via HTML in Code
    07:42
  • Adding Elements via createElement()
    05:42
  • Inserting DOM Elements
    08:15
  • Cloning DOM Nodes
    01:45
  • Live Node Lists vs Static Node Lists
    04:55
  • Removing Elements
    01:56
  • Insertion & Removal Method Summary
    02:38
  • Summary: Insert, Replace, Remove
    01:52
  • Setting Up the Practice Project
    02:16
  • Selecting the Modal and "Add" Button
    08:58
  • Opening a Modal by Changing CSS Classes
    05:01
  • Controlling the Backdrop
    08:04
  • Fetching and Validating User Input
    08:06
  • Creating a Movie in JavaScript & Clearing the Input
    04:00
  • Rendering Movie Items on the Screen
    08:24
  • Deleting Movie Elements
    09:12
  • Showing & Hiding the "Are you sure?" Dialog
    07:08
  • Starting with the Confirmation Logic
    04:29
  • Finishing the App
    11:45
  • Wrap Up
    01:55
  • Useful Resources & Links
    00:12

  • Module Introduction
    01:08
  • What are "Iterables" and "Array-like Objects"?
    02:11
  • Creating Arrays
    08:55
  • Which Data Can You Store In Arrays?
    03:47
  • push(), pop(), unshift(), shift() - Adding & Removing Elements
    06:59
  • The splice() Method
    05:37
  • Selecting Ranges & Creating Copies with slice()
    06:06
  • Adding Arrays to Arrays with concat()
    02:23
  • Retrieving Indexes with indexOf() /& lastIndexOf()
    03:47
  • Finding Stuff: find() and findIndex()
    05:20
  • Is it Included?
    01:20
  • Alternative to for Loops: The forEach() Method
    04:24
  • Transforming Data with map()
    02:38
  • sort()ing and reverse()ing
    04:15
  • Filtering Arrays with filter()
    02:35
  • Where Arrow Functions Shine!
    01:31
  • The Important reduce() Method
    07:33
  • Chaining Methods in JavaScript
    00:48
  • Arrays & Strings - split() and join()
    04:21
  • The Spread Operator (...)
    10:31
  • Understanding Array Destructuring
    04:24
  • Maps & Sets - Overview
    04:16
  • Working with Sets
    07:21
  • Working with Maps
    09:30
  • Maps vs Objects
    03:41
  • Understanding WeakSet
    04:50
  • Understanding WeakMap
    02:51
  • Time to Practice: Arrays & Iterables
    1 question
  • Wrap Up
    01:25
  • Useful Resources & Links
    00:12

  • Module Introduction
    01:38
  • What's an Object?
    05:54
  • Objects & Primitive Values
    00:41
  • Objects - Recap
    02:42
  • Adding, Modifying & Deleting Properties
    06:46
  • Special Key Names & Square Bracket Property Access
    08:36
  • Property Types & Property Order
    03:55
  • Dynamic Property Access & Setting Properties Dynamically
    04:11
  • Object Properties
    4 questions
  • Demo App & Shorthand Property Syntax
    09:22
  • Rendering Elements based on Objects
    05:36
  • for-in Loops & Outputting Dynamic Properties
    05:24
  • Adding the Filter Functionality
    05:38
  • Understanding "Chaining" (Property & Method Chaining)
    01:51
  • The Object Spread Operator (...)
    05:54
  • Understanding Object.assign()
    02:08
  • Object Destructuring
    06:13
  • Checking for Property Existance
    02:42
  • Introducing "this"
    05:52
  • The Method Shorthand Syntax
    01:07
  • The "this" Keyword And Its Strange Behavior
    05:41
  • call() and apply()
    03:22
  • What the Browser (Sometimes) Does to "this"
    02:33
  • "this" and Arrow Functions
    10:36
  • "this" - Summary
    01:15
  • "this"
    6 questions
  • Getters & Setters
    07:05
  • Wrap Up
    01:33
  • Useful Resources & Links
    00:10

  • Module Introduction
    01:55
  • What is "Object-oriented Programming" (OOP)?
    03:17
  • Getting Started with OOP Code
    12:10
  • Defining & Using a First Class
    07:17
  • Working with Constructor Methods
    04:51
  • Fields vs Properties
    02:19
  • Using & "Connecting" Multiple Classes
    09:06
  • Binding Class Methods & Working with "this"
    04:57
  • Adding a Cart and Shop Class
    04:37
  • Communicating Can Be Challenging!
    03:54
  • Static Methods & Properties
    07:51
  • First Summary & Classes vs Object Literals
    04:06
  • Getters & Setters
    05:43
  • Introducing Inheritance
    02:34
  • Implementing Inheritance
    11:50
  • Using Inheritance Everywhere
    06:51
  • Overriding Methods and the super() Constructor
    06:00
  • super() Constructor Execution, Order & "this"
    06:46
  • Different Ways of Adding Methods
    05:51
  • Private Properties
    07:24
  • "Pseudo-Private" Properties
    00:32
  • Time to Practice: Classes & OOP
    1 question
  • The "instanceof" Operator
    04:30
  • Built-in Classes
    01:09
  • Understanding Object Descriptors
    07:35
  • Classes
    5 questions
  • Wrap Up
    01:51
  • Useful Resources & Links
    00:09

Requirements

  • NO prior JavaScript knowledge is required
  • Basic web development knowledge is recommended
  • Basic understanding of HTML and CSS helps but is NOT required

Description

JavaScript is THE most important programming language you need to learn as a web developer - and with this course, you make sure that you will not miss a single thing you have to know as a JavaScript developer!

This is the most comprehensive and modern course you can find on JavaScript - it's based on all my JavaScript knowledge AND teaching experience. It's both a complete guide, starting with the core basics of the language, as well as an extensive reference of the JavaScript language and environment, ensuring that both newcomers as well as experienced JavaScript developers get a lot out of this course!

It's a huge course because it's packed with important knowledge and helpful content. From the core basics, over advanced concepts and JavaScript specialties, all the way up to expert topics like performance optimization and testing - this course has it all. My goal was to create your go-to resource for the JavaScript language, which you can not just use for learning it but also as a resource you can come back to and look up important topics.

The course is based on my experience as a long-term JavaScript developer as well as a teacher with more than 1,000,000 students on Udemy as well as on my YouTube channel Academind. It's packed with examples, demos, projects, assignments, quizzes and of course videos - all with the goal of giving you the best possible way of learning JavaScript.

What's in the course?

This course is obviously packed with content - I therefore strongly recommend that you check out the full course curriculum to get a clear idea of all the topics covered in the course. In general, here's what you'll find in the course:

  • Modern JavaScript from the start: The JavaScript syntax changed over time - in this course, you'll learn the latest syntax from the start (you'll also learn about the old one though, so that you can work in ANY JS project)

  • ALL the Basics: Variables, constants, functions, how scripts are loaded etc

  • Arrays & Objects: We'll explore these very important data structures in great detail

  • Control Structures: Understand how to run code conditionally and in loops

  • A look behind the Scenes: How JavaScript engines work behind the scenes and what that means for us

  • Deep dives into Core Concepts: ALL the special things about JavaScript function, different syntaxes

  • Working with the DOM: How to manipulate web pages dynamically via JavaScript (including deep dives and different use-cases)

  • Events in JavaScript: Learn how to listen to a broad variety of events (e.g. drag & drop) and execute appropriate code

  • Classes & Object-oriented Programming: Learn how to work with classes, prototypes, the "this" keyword, constructor functions and much more

  • Asynchronous and Synchronous Programming: We'll explore callbacks, promises, async/ await and other important tools and language features to execute code correctly

  • Http Requests: Learn how to send Http requests via JavaScript

  • Tooling, Optimizations & Browser Support: Code splitting, producing small code and ensuring that scripts work in all browsers  - this matters and hence is covered in great detail

  • Libraries & Frameworks: Learn about libraries like Axios or frameworks like React.js - why they matter and how to use them

  • Node.js: Whilst focusing on the browser-side for the majority of the course (because the syntax is the same), we'll also have a dedicated section on Node.js to learn all about that JS host environment

  • Security & Performance Optimizations: Of course security matters, so does performance - no surprise that both is covered in the course!

  • Automated Testing: Testing manually is hard work and can be unreliable - in this course you'll also get an introduction into automated testing

What are the course prerequisites?

  • NO JavaScript knowledge is required - you'll learn it from scratch!

  • You also need NO programming experience other than basic web development knowledge (e.g. how the web works)

  • Basic HTML and CSS knowledge is recommended but not a must-have

Who this course is for:

  • Beginner web development students who have no or only little JavaScript experience
  • Also developers who know the basics about JavaScript and want to deepen their knowledge
  • Advanced JavaScript developers who want to learn more about the nitty-gritty details and dive into advanced concepts
  • Everyone interested in learning JavaScript and all about how it works

Featured review

David Mansy
David Mansy
33 courses
4 reviews
Rating: 5.0 out of 5a year ago
Beyond very pragmatic explanations about basic and advanced JavaScript concepts, the course is full of best practices to design/build apps in JavaScript without frameworks (huge focus on the DOM). This is not so easy to find as most of the courses focus on vanilla JS to build basic examples or frameworks to build more advanced apps. Really useful!

Instructors

Academind by Maximilian Schwarzmüller
Online Education
Academind by Maximilian Schwarzmüller
  • 4.6 Instructor Rating
  • 302,658 Reviews
  • 1,286,723 Students
  • 25 Courses

Bundling the courses and know how of successful instructors, Academind strives to deliver high quality online education. 

Online Education, Real-Life Success - that's what Academind stands for. Learn topics like web development, data analyses and more in a fun and engaging way.

Currently, you can find courses published by Maximilian Schwarzmüller and Manuel Lorenz, more instructors to come!

Keep learning!

Maximilian Schwarzmüller
Professional Web Developer and Instructor
Maximilian Schwarzmüller
  • 4.6 Instructor Rating
  • 551,394 Reviews
  • 1,305,121 Students
  • 35 Courses

Experience as (Web) Developer

Starting out at the age of 13 I never stopped learning new programming skills and languages. Early I started creating websites for friends and just for fun as well. Besides web development I also explored Python and other non-web-only languages. This passion has since lasted and lead to my decision of working as a freelance web developer and consultant. The success and fun I have in this job is immense and really keeps that passion burningly alive.

Starting web development on the backend (PHP with Laravel, NodeJS, Python) I also became more and more of a frontend developer using modern frameworks like React, Angular or VueJS 2 in a lot of projects. I love both worlds nowadays!

As a self-taught developer I had the chance to broaden my horizon by studying Business Administration where I hold a Master's degree. That enabled me to work in a major strategy consultancy as well as a bank. While learning, that I enjoy development more than these fields, the time in this sector greatly improved my overall experience and skills.

Experience as Instructor

As a self-taught professional I really know the hard parts and the difficult topics when learning new or improving on already-known languages. This background and experience enables me to focus on the most relevant key concepts and topics. My track record of many 5-star rated courses, more than 700,000 students on Udemy as well as a successful YouTube channel is the best proof for that.

Whether working as development instructor or teaching Business Administration I always received great feedback. The most rewarding experience is to see how people find new, better jobs, build awesome web applications, acquire amazing projects or simply enjoy their hobby with the help of my content.

Together with Manuel Lorenz, I founded Academind to offer the best possible learning experience to our more than 800,000 students.

  • Udemy for Business
  • Teach on Udemy
  • Get the app
  • About us
  • Contact us
  • Careers
  • Blog
  • Help and Support
  • Affiliate
  • Terms
  • Privacy policy
  • Cookie settings
  • Sitemap
  • Featured courses
Udemy
© 2021 Udemy, Inc.