Learn JavaScript from scratch with learnjavascript.today is the best course to learn JavaScript quickly. JavaScript is one of the most popular programming languages in the world. Millions of developers use JavaScript to create amazing things on the web. JavaScript is a universal language used on a website’s frontend and backend. It is also one of the most commonly used programming languages globally.
You don’t have to spend hours researching and modifying pre-existing elements if you have enough JavaScript knowledge. To help you land the frontend development job of your dreams, you can feel confident in JavaScript interviews.
However, despite your best efforts, you find yourself baffled by the material as you work your way through JavaScript tutorials. You begin to lose faith in yourself. There is a good chance you will feel terrified, stupid, and befuddled. You may end up wondering, “Can I really learn JavaScript?”.
Only the Learn JavaScript online course enables students to grasp the complexities of JavaScript. JavaScript is explained in great detail, with numerous examples throughout. It also taught me how to think like a developer, which was a big help.
Learn JavaScript from scratch: The lesson plan
Here’s a quick table of contents for your viewing pleasure:
Module 1: JavaScript and its Ecosystem
- How to use this course
- What is JavaScript used for?
- The JavaScript ecosystem
- Varying versions of JavaScript
Module 2: JavaScript Basics
- Linking your JavaScript file
- Preparing your text editor
- The console
- Comments
- You don’t need semicolons
- Strings, numbers, and booleans
- Declaring variables
- Functions
- Arrow functions
- Intro to objects
- If/else statements
- The NOT operator
- Null and undefined
- The BOM and the DOM
- Selecting an element
- Changing classes
- Listening to events
- Callbacks
Module 3: Building simple components
- How to think like a developer
- How to use the starter template
- Do this for every component
- Building an off-canvas menu
- Building a modal window
- Lessons from the building process
- Debugging errors
- How to use a linter
Module 4: Arrays and loops
- Introduction to arrays
- Array methods
- For loops
- The forEach loop
- Selecting multiple elements
- Node vs Elements
- Building an accordion
Module 5: DOM basics
- Id, classes, tags, and attributes
- Changing CSS with JavaScript
- Getting CSS with JavaScript
- Changing attributes
- Finding an element’s size and position
- DOM Traversals
- Building a Tabbed Component
- Carousel: HTML and CSS
- Carousel: Switching slides with JavaScript
- Carousel: Working the dots
- Carousel: Positioning slides with JavaScript
Module 6: Events deep dive
- The listening element
- Default behaviors
- Event propagation
- Event delegation
- Removing event listeners
- Modal: Closing the modal
- Accordion: Event delegation
- Tabby: Event delegation
- Carousel: Event delegation
Module 7: Transitions and Animations
- CSS transitions
- CSS animations
- Silky-smooth animations
- Integrating CSS transitions and animations with Javascript
- JavaScript animations
- The Greensock Animation API (GSAP)
- Modal: Animating the modal
- Modal: Animating the pointing hand
- Modal: Animating the waving hand
- Modal: Modal: Wave hand animation with JavaScript (using GSAP)
- Modal: Wave hand animation with JavaScript (using GSAP)
- Accordion: Animations
- Carousel: Animations
Module 8: Useful JavaScript features
- Ternary operators
- And and OR operators
- Early returns
- Template literals
- Destructuring
- Default parameters
- Enhanced object literals
- Rest and spread operators
- Useful array methods
- Reduce
- Looping through objects
- Returning objects with an implicit return
- Accordion: Using useful JavaScript features
- Tabby: Using useful JavaScript features
- Carousel: Useful JavaScript features
Module 9: JavaScript best practices
- Write declarative code
- Functions with a purpose
- Manage scope
- Reduce state changes
- Don’t reassign
- Don’t mutate
- Preventing Objects from mutating
- Preventing Arrays from mutating
- Write pure functions
- Accordion: Refactor
- Carousel: First refactor
- Carousel: Refactoring the dots part
- Carousel: Previous and next buttons
- Carousel: Second refactor
Module 10: Text and Content
- Changing text and HTML
- Creating HTML elements
- Adding multiple elements to the DOM
- Removing elements from the DOM
- Carousel: Creating dots with JavaScript
- Calculator: HTML and CSS
- Calculator: Happy Path
- Calculator: Testing the Happy Path Path
- Calculator: Easy Edge Cases
- Calculator: Difficult Edge Cases Cases
- Calculator: Refactoring
- The Switch Statement
- Calculator: Refactoring part 2
- Popover: Making one popover
- Popover: Making four popovers
- Popover: Making popovers with JavaScript
Module 11: Forms
- Intro to forms
- Selecting form fields with JavaScript
- Form fields and their events
- Sanitize your output
- Generating unique IDs
- Popover: Dynamic ID
- Todolist: The HTML and CSS
- Todolist: Creating tasks with JavaScript
- Todolist: Deleting tasks with JavaScript
- Typeahead: The HTML and CSS
- Typeahead: Displaying predictions
- Typeahead: Selecting a prediction
- Typeahead: Bolding search terms
Module 12: Dates
- The Date Object
- Getting a formatted date
- Getting the time
- Local time and UTC Time
- Setting a specific date
- Setting a date with Date methods
- Adding (or subtracting) date and time
- Comparing Dates and times
- Datepicker: Initial HTML and CSS
- Datepicker: Building the calendar
- Datepicker: Building the date picker with JavaScript
- Datepicker: Previous and next buttons
- Datepicker: Selecting a date
- Datepicker: Positioning the date picker
- Datepicker: Showing and hiding
- Formatting a date with toLocaleString
- setTimeout
- setInterval
- Countdown: The HTML and CSS
- Countdown: The JavaScript
- Countdown: Counting months
- Countdown: Daylight Saving Time
- Countdown: Counting years
Module 13: Asynchronous JavaScript
- Introduction to Ajax
- Understanding JSON
- The Fetch API
- Possible data types
- JavaScript Promises
- Requests and responses
- Sending a POST request
- Authentication
- Handling errors
- Viewing response headers
- CORS and JSONP
- XHR vs Fetch
- Using an Ajax library
- Reading API documentation
- Understanding curl
- Todolist: The Todolist API
- Todolist: Fetching tasks
- Todolist: Creating tasks
- Todolist: Editing tasks
- Todolist: Deleting tasks
- Todolist: Creating tasks with Optimistic UI
- Todolist: Handling Optimistic UI errors
- Todolist: Editing tasks with Optimistic UI
- Todolist: Deleting tasks with Optimistic UI
- Todolist: Refactor
- Typeahead: How to add Ajax
- Typeahead: Adding Ajax
- Typeahead: Handling errors
- Google Maps Clone: Creating your first Google Map
- Google Maps Clone: Fetching JSONP via JavaScript
- Google Maps Clone: Drawing directions
- Google Maps Clone: Driving directions
- Google Maps Clone: Handling errors
- Google Maps Clone: Adding stopovers
- Google Maps Clone: Refactor
Module 14: Advanced Asynchronous JavaScript
- Requesting many resources at once New
- Asynchronous functions New
- Handling multiple awaits New
- Asynchronous loops New
- Dota Heroes: Listing heroes
- Dota Heroes: Filtering heroes (Part 1)
- Dota Heroes: Filtering heroes (Part 2)
- Dota Heroes: Refactoring
- Dota Heroes: Hero Page New
- Dota Heroes: Making the hero page robust New
- Dota Heroes: Heroes page refactor
Module 15: Keyboard
- Keyboard users
- Handling commonly used keys
- Keyboard events
- Understanding Tabindex
- Detecting the focused element
- Directing focus
- Preventing people from tabbing into elements
- How to choose keyboard shortcuts
- Creating single-key shortcuts
- Off-canvas: Adding keyboard interaction
- Modal: Adding keyboard interaction
- Accordion: Adding keyboard interaction
- Tabby: Adding keyboard interaction
- Tabby: Refactoring
- Carousel: Adding keyboard interaction
- Carousel: Displaying the help text
- Calculator: Adding keyboard interaction
- Popover: Keyboard
- Popover: Refactor
- Keyboard shortcuts with Command and Control modifiers
- Todolist: Keyboard
- Typeahead: Keyboard
- Typeahead: Selecting a prediction with the keyboard
- Google Maps Clone: Keyboard
- Dota Heroes: Keyboard
- Datepicker: Tabbing in and out
- Datepicker: Keyboard shortcuts
Module 16: Accessibility
- What is accessibility?
- How to use a screen reader
- Using NVDA
- Using Voiceover
- Aria roles
- Landmark roles
- Document structure roles
- Live region roles
- Widget roles
- Window and Abstract roles
- Accessible names and descriptions
- Hiding content
- ARIA properties and ARIA states
- ARIA for expandable widgets
- Off-canvas: Accessibility
- ARIA for modal dialogs
- Modal: Screen reader accessibility
- Accordion: Screen reader accessibility
- ARIA for Tabbed components
- Tabby: Screen reader accessibility
- Tabby: Refactor
- Carousel: Screen reader accessibility
- Roles that trigger Forms and Application modes
- What’s next for accessibility
Module 17: Handling Scroll
- The Scroll event
- Auto-hiding Sticky-nav: HTML and CSS
- Auto-hiding Sticky-nav: JavaScript
- Auto-hiding Sticky-nav: Natural reveal
- Intersection Observer API
- Intersection Observer Options
- Slide & Reveal
- Slide & Reveal: Always fade in when you scroll down
- Slide & Reveal: Fine-tuning the animation
- Infinite Scroll: Anatomy
- Infinite Scroll: Infinite load
- Infinite Scroll: Refactor
- Infinite Scroll: Implementing the Infinite Scroll
Module 18: Mouse, Touch, and Pointers
- Mouse Events
- Spinning Pacman: HTML and CSS
- Spinning Pacman: JavaScript
- Touch events
- Pointer events
- Touch-action
- Spinning Pacman: Supporting Touch
- Cloning elements
- DragDrop: HTML and CSS
- DragDrop: JavaScript
- DragDrop: Creating a drop preview
- DragDrop: Sortable drop preview
- DragDrop: Robustness
- DragDrop: Refactor
Module 19: Object-oriented programming
- Before we begin
- What Is Object-Oriented Programming?
- Four Flavours of Object-Oriented Programming
- Inheritance
- This in JavaScript
- Call, bind, apply
- Creating Derivative Objects
- Composition vs Inheritance
- Polymorphism
- Encapsulation
- Closures
- Encapsulation in Object-Oriented Programming
- Getters and Setters
- What OOP flavor to use
- When to use Object-Oriented Programming
Module 20: Writing reusable code
- Creating reusable code by writing libraries
- Two Types of libraries Updated
- Including libraries with Script tags
- Including libraries with ES6 Modules
- Dynamic imports
- Off-Canvas: Building a Library Updated
- Modal: Library setup
- Modal: Opening the Modal
- Modal: Closing the modal
- Modal: Inheritance and Polymorphism
- Modal: Resolving differences between subclasses
- Modal: Exposing properties and methods
- Accordion: Building a library
- Tabby: Building a library
- Carousel: Building a library
- Calculator: Library
- Calculator: Fixing the Clear Key
- Calculator: Handling other keys
- Calculator: State
- Popover: Library
- Popover: Adding event listeners
- Typeahead: Library
- DatePicker: Library
Module 21: Vanilla JS to Frameworks
- Building a Tiny framework
- Tiny: Add event listeners
- Tiny: Updating state
- Tiny: Rendering Child Components
- Tiny: Changing Parent State
- Tiny: Passing Props
- Tiny: Multiple Props
- Tiny: Passing values from sibling components
- Tiny: Mounting
- Tiny: Passing props to descendants
- Tiny: A tiny refactor
Module 22: Single page applications
- What is a Single Page App?
- Simple SPA using only CSS
- The Location Interface
- The History Interface
- Minimum viable server for a SPA
- Dota SPA: Introduction
- Dota SPA: Building The Heroes List
- Dota SPA: Building the filters
- Dota SPA: Filtering heroes
- Dota SPA: Displaying filtered heroes
- Dota SPA: Getting Ready to build the Hero Page
- Dota SPA: Building the hero page
- Dota SPA: Lore and abilities
- Dota SPA: Routing for Single-page apps
Learn to build 20 components with Learn JavaScript from scratch
Here are the 20 components you’ll build:
- Off-canvas Menu
- Modal Window
- Accordion
- Tabbed Component
- Carousel
- Calculator
- Popover
- Todolist
- Typeahead
- Datepicker
- Countdown Timer
- Google Maps Clone
- Dota Heroes Page
- Auto-hiding Sticky Nav
- Slide & Reveal
- Infinite Scroll
- Spinning Pacman
- Drag and Drop
- A Tiny Framework
- Dota Heroes SPA
Enroll in Learn JavaScript
Learn JavaScript batch to begin on 1st August 2022. Click here to enroll