1.1. Why You Should Take This Course
1.2. Why JavaScript is Amazing
1.3. Setting up Your Environment
1.4. Course Files
2.1. Adding JavaScript to a Web Page
2.2. The Browser Console
2.3. Variables, Constants & Comments
2.4. Data Types at a Glance
2.5. Strings
2.6. Common String Methods
2.7. Numbers
2.8. Template Strings
2.9. Arrays
2.10. Null & Undefined
2.11. Booleans & Comparisons
2.12. Loose vs Strict Comparison
2.13. Type Conversion
3.1. What is Control Flow
3.2. For Loops
3.3. While Loops
3.4. Do While Loops
3.5. If Statements
3.6. Else & Else If
3.7. Logical Operators
3.8. Logical NOT
3.9. Break & Continue
3.10. Switch Statements
3.11. Variables & Block Scope
4.1. What are Functions
4.2. Function Declarations & Expressions
4.3. Arguments & Parameters
4.4. Returning Values
4.5. Arrow Functions
4.6. Functions vs Methods
4.7. Foreach Method & Callbacks
4.8. Callback Functions in Action
5.1. Objects at a Glance
5.2. Creating an Object Literal
5.3. Adding Methods
5.4. "this" Keyword
5.5. Objects in Arrays
5.6. Math Object
5.7. Primitive vs Reference Types
6.1. Interacting with the Browser
6.2. The DOM Explained
6.3. The Query Selector
6.4. Other Ways to Query the DOM
6.5. Adding & Changing Page Content
6.6. Getting & Setting Attributes
6.7. Changing CSS Styles
6.8. Adding & Removing Classes
6.9. Parents, Children & Siblings
6.10. Event Basics (click events)
6.11. Creating & Removing Elements
6.12. Event Bubbling (and delegation)
6.13. More DOM Events
6.14. Building a Popup
7.1. Events Inside Forms
7.2. Submit Events
7.3. Regular Expressions
7.4. Testing RegEx Patterns
7.5. Basic Form Validation
7.6. Keyboard Events
8.1. Project Preview & Setup
8.2. Bootstrap Basics
8.3. HTML Template
8.4. Checking Answers
8.5. Showing the Score
8.6. The Window Object
8.7. Intervals & Animating the Score
9.1. Filter Method
9.2. Map Method
9.3. Reduce Method
9.4. Find Method
9.5. Sort Method
9.6. Chaining Array Methods
10.1. Project Preview and Setup
10.2. HTML & CSS Template
10.3. Adding Todos
10.4. Deleting Todos
10.5. Searching & Filtering Todos
11.1. Dates & Times in JavaScript
11.2. Timestamps & Comparisons
11.3. Building a Digital Clock
11.4. Date-fns Library
12.1. What is Asynchronous JavaScript
12.2. Async Code in Action
12.3. What are HTTP Requests
12.4. Making HTTP Requests (XHR)
12.5. Response Status
12.6. Callback Functions
12.7. JSON Data
12.8. Callback Hell
12.9. Promise Basics
12.10. Chaining Promises
12.11. The Fetch API
12.12. Async & Await
12.13. Throwing & Catching Errors
13.1. Project Preview & Setup
13.2. HTML & CSS Template
13.3. AccuWeather API
13.4. Get City API Call
13.5. Get Weather API Call
13.6. Updating the Location
13.7. Object Shorthand Notation
13.8. Updating the UI
13.9. Destructuring
13.10. Weather Icons & images
13.11. Ternary Operator
14.1. What is Local Storage
14.2. Storing & Getting Data
14.3. Deleting Storage Data
14.4. Stringifying & Parsing Data
14.5. Updating the Weather App
15.1. What is OOP
15.2. Object Literal Recap
15.3. Classes
15.4. Class Constructors
15.5. Class Methods & Method Chaining
15.6. Class Inheritance (subclasses)
15.7. Super( )
15.8. Constructors (under the hood)
15.9. Prototype Model
15.10. Prototypal Inheritance
15.11. Built-in Objects
15.12. Making a Forecast Class (weather app)
16.1. NoSQL Databases
16.2. Firebase & Firestore
16.3. Connecting to Firestore
16.4. Getting Collections
16.5. Saving Documents
16.6. Deleting Documents
16.7. Real-time Listeners
16.8. Unsubscribing
17.1. Project Preview & Setup
17.2. HTML Template
17.3. Connecting to Firebase
17.4. Chatroom Class & Adding Chats
17.5. Setting up a Real-time Listener
17.6. Complex Queries
17.7. Updating the Room & Username
17.8. Creating a ChatUI Class
17.9. Formatting the Dates
17.10. Sending New Chats
17.11. Changing Username & Local Storage
17.12. Updating the Room
17.13. Testing the App
18.1. Spread & Rest
18.2. Sets
18.3. Symbols
19.1. Modern Feature Support
19.2. An Introduction to Babel
19.3. Installing Node.js & Babel
19.4. Using the Babel CLI
19.5. NPM Scripts & Watching Files
19.6. What is Webpack
19.7. Setting up a Webpack File
19.8. Webpack CLI
19.9. Introduction to Modules
19.10. Default Exports
19.11. Watching for Changes
19.12. The Webpack Dev Server
19.13. Production & Development Modes
19.14. Babel & Webpack Together
19.15. Webpack Boilerplate
20.1. Project Preview & Setup
20.2. CSS & Style Loaders (webpack)
20.3. Tooltips
20.4. Dropdowns
20.5. Tabbed Content
20.6. Snackbars
20.7. Extending the Library