Table Of Contents: Table Of Contents
every section in zip file without password:
1. Introduction.zip - 313.8 MB 2. Basics Variables, Data Types, Operators & Functions.zip - 1.2 GB 3. Efficient Development & Debugging.zip - 413.4 MB 4. Working with Control Structures (if Statements, Loops, Error Handling).zip - 1.7 GB 5. Behind the Scenes & The (Weird) Past (ES3, ES5) & Present (ES6+) of JavaScript.zip - 457.0 MB 6. More on Functions.
Table Of Contents: Table Of Contents
1- Introduction Introduction What is JavaScript? JavaScript in Action! Join our Online Learning Community How JavaScript Is Executed Dynamic vs Weakly Typed Languages JavaScript Runs In A Host Environment Course Outline - What Is In The Course? How To Get The Most Out Of This Course Using Course Resources JavaScript vs Java A Brief History Of JavaScript Setting Up a Development Environment Course FAQs
Table Of Contents: Table Of Contents
2- Basics: Variables, Data Types, Operators & Functions Module Introduction Setting Up the Project More on Version Control & Git Adding JavaScript to the Website Introducing Variables & Constants Declaring & Defining Variables Working with Variables & Operators Variables & Operators Understanding the Starting Code Data Types: Numbers & Strings (Text) Using Constants More on Strings Data Types & Constants Time to Practice: Variables, Constants, Operators & Core Data Types Introducing Functions Adding A Custom Function Code Styles, Conventions & Syntax Returning Values The (Un)Importance of Code Order An Introduction to Global & Local Scope “Shadowed Variables” More about the “return” Statement Executing Functions “Indirectly” “Indirect” vs “Direct” Function Execution - Summary Functions & Scope Time to Practice: Functions Converting Data Types Mixing Numbers & Strings Splitting Code into Functions Connecting all Buttons to Functions Working with Code Comments More Operators!
Table Of Contents: Table Of Contents
3- Efficient Development & Debugging Module Introduction Efficient Development & Debugging - An Overview Configuring the IDE Look & Feel Using Shortcuts Working with Auto-Completion & IDE Hints Installing IDE Extensions Tweaking Editor Settings Utilizing Different IDE Views Finding Help & Working with MDN The ECMAScript Standard How to “google” Correctly Debugging JavaScript - An Overview An Error Message! No Reason To Panic! Using console.
Table Of Contents: Table Of Contents
4- Working with Control Structures (if Statements, Loops, Error Handling) Module Introduction Introducing “if” Statements & Boolean (Comparison) Operators Using Booleans in Conditions & More on Text Comparisons Using “if” Statements Working with “if”, “else” and “else-if” Beware When Comparing Objects & Arrays for Equality! The Logical AND and OR Operators Understanding Operator Precedence if & Boolean Operators - The Basics Beyond true/ false: “Truthy” and “Falsy” Values Coercion vs Conversion Falsy and Truthy Values Setting Up a Bigger Example Project (The “Monster Killer”) Adding an “Attack” Function Using “if” Statements for Checking the Win-Condition Adding More “if” Statements & A “Strong Attack” Functionality Time for a “Heal Player” Functionality!
Table Of Contents: Table Of Contents
5- Behind the Scenes & The (Weird) Past (ES3, ES5) & Present (ES6+) of JavaScript Module Introduction ES5 vs ES6+ (“Next Gen JS”) - Evolution of JavaScript var vs let & const - Introducing “Block Scope” Understanding “Hoisting” Strict Mode & Writing Good Code “JavaScript Specialties” How Code is Parsed & Compiled Inside the JavaScript Engine - How the Code Executes [DEEP DIVE] JavaScript Language vs Browser APIs Primitive vs Reference Values Garbage Collection & Memory Management Wrap Up Useful Resources & Links
Table Of Contents: Table Of Contents
6- More on Functions Module Introduction Recapping Functions Knowledge - What We Know Thus Far Parameters vs Arguments Functions vs Methods Functions are Objects! Function Expressions: Storing Functions in Variables Function Expressions vs Function Declarations Anonymous Functions Working on the Project: Adding User Choices to the Game Implementing the Core Game Logic Introducing Arrow Functions Different Arrow Function Syntaxes Creating Functions Outputting Messages to the User Default Arguments in Functions Introducing Rest Parameters (“Rest Operator”) Creating Functions Inside of Functions Understanding Callback Functions Time to Practice: Functions Working with “bind()” Functions - Advanced Adding bind() to the Calculator Project call() and apply() Wrap Up Useful Resources & Links
Table Of Contents: Table Of Contents
7- Working with the DOM (Browser HTML Code) in JavaScript Module Introduction What’s the “DOM”? Document and Window Object Understanding the DOM and how it’s created Nodes & Elements - Querying the DOM Overview Selecting Elements in the DOM Summary: Node Query Methods Exploring and Changing DOM Properties Attributes vs Properties Selecting Multiple Elements & Summary DOM Basics Time to Practice: DOM Querying Traversing the DOM - Overview Traversing Child Nodes Using parentNode & parentElement Selecting Sibling Elements DOM Traversal vs Query Methods Styling DOM Elements Creating Elements with JS - Overview Adding Elements via HTML in Code Adding Elements via createElement() Inserting DOM Elements Cloning DOM Nodes Live Node Lists vs Static Node Lists Removing Elements Insertion & Removal Method Summary Summary: Insert, Replace, Remove Setting Up the Practice Project Selecting the Modal and “Add” Button Opening a Modal by Changing CSS Classes Controlling the Backdrop Fetching and Validating User Input Creating a Movie in JavaScript & Clearing the Input Rendering Movie Items on the Screen Deleting Movie Elements Showing & Hiding the “Are you sure?
Table Of Contents: Table Of Contents
8- More on Arrays & Iterables Module Introduction What are “Iterables” and “Array-like Objects”? Creating Arrays Which Data Can You Store In Arrays? push(), pop(), unshift(), shift() - Adding & Removing Elements The splice() Method Selecting Ranges & Creating Copies with slice() Adding Arrays to Arrays with concat() Retrieving Indexes with indexOf() /& lastIndexOf() Finding Stuff: find() and findIndex() Is it Included? Alternative to for Loops: The forEach() Method Transforming Data with map() sort()ing and reverse()ing Filtering Arrays with filter() Where Arrow Functions Shine!
Table Of Contents: Table Of Contents
9 More on Objects Module Introduction What’s an Object? Objects & Primitive Values Objects - Recap Adding, Modifying & Deleting Properties Special Key Names & Square Bracket Property Access Property Types & Property Order Dynamic Property Access & Setting Properties Dynamically Object Properties Demo App & Shorthand Property Syntax Rendering Elements based on Objects for-in Loops & Outputting Dynamic Properties Adding the Filter Functionality Understanding “Chaining” (Property & Method Chaining) The Object Spread Operator (…) Understanding Object.
Table Of Contents: Table Of Contents
10- Classes & Object-oriented Programming (OOP) Module Introduction What is “Object-oriented Programming” (OOP)? Getting Started with OOP Code Defining & Using a First Class Working with Constructor Methods Fields vs Properties Using & “Connecting” Multiple Classes Binding Class Methods & Working with “this” Adding a Cart and Shop Class Communicating Can Be Challenging! Static Methods & Properties First Summary & Classes vs Object Literals Getters & Setters Introducing Inheritance Implementing Inheritance Using Inheritance Everywhere Overriding Methods and the super() Constructor super() Constructor Execution, Order & “this” Different Ways of Adding Methods Private Properties “Pseudo-Private” Properties Time to Practice: Classes & OOP The “instanceof” Operator Built-in Classes Understanding Object Descriptors Classes Wrap Up Useful Resources & Links
Table Of Contents: Table Of Contents
11- Deep Dive Constructor Functions & Prototypes Module Introduction Introducing Constructor Functions Constructor Functions vs Classes & Understanding “new” Introducing Prototypes Prototypes - Summary Working with Prototypes The Prototype Chain and the Global “Object” Constructor Functions & Prototypes Classes & Prototypes Methods in Classes & In Constructors Built-in Prototypes in JavaScript Setting & Getting Prototypes Wrap Up Useful Resources & Links
To view this video please enable JavaScript, and consider upgrading to a web browser that
Table Of Contents: Table Of Contents
12- Practice OOP & Classes Module Introduction First Project Steps & Planning Creating Project Lists & Parsing Element Data Starting with the “Switch Project” Logic Passing Method References Around Moving DOM Elements Adding a Tooltip Adding Inheritance Wrap Up Useful Resources & Links
To view this video please enable JavaScript, and consider upgrading to a web browser that
Table Of Contents: Table Of Contents
13- Back to the DOM & More Browser APIs Module Introduction Using “dataset” (data-* Attributes) Getting Element Box Dimensions Working with Element Sizes & Positions The DOM & Prototypes Positioning the Tooltip Handling Scrolling Working with template Tags Loading Scripts Dynamically Setting Timers & Intervals The “location” and “history” Objects The “navigator” Object Working with Dates The “Error” Object & Constructor Function Wrap Up Useful Resources & Links
Table Of Contents: Table Of Contents
14- Working with Events Module Introduction Introduction to Events in JavaScript Different Ways of Listening to Events Removing Event Listeners The “event” Object Supported Event Types Example: Basic Infinite Scrolling Working with “preventDefault()” Understanding “Capturing” & “Bubbling” Phases Event Propagation & “stopPropagation()” Using Event Delegation Triggering DOM Elements Programmatically Event Handler Functions & “this” Events Drag & Drop - Theory Configuring Draggable Elements Marking the “Drop Area” Dropping & Moving Data + Elements Wrap Up Useful Resources & Links
Table Of Contents: Table Of Contents
15- Advanced Function Concepts Module Introduction Pure Functions & Side-Effects Impure vs Pure Functions Factory Functions Closures Closures in Practice Closures & Memory Management Optional: IIFEs Introducing “Recursion” Advanced Recursion Advanced Functions Wrap Up Useful Resources & Links
To view this video please enable JavaScript, and consider upgrading to a web browser that
Table Of Contents: Table Of Contents
16- More on Numbers & Strings Module Introduction How Numbers Work & Behave in JavaScript Floating Point (Im)Precision The BigInt Type The Global “Number” and “Math” Objects Example: Generate Random Number Between Min/ Max Exploring String Methods Tagged Templates Introducing Regular Expressions (“RegEx”) More on Regular Expressions Wrap Up Useful Resources & Links
To view this video please enable JavaScript, and consider upgrading to a web browser that
Table Of Contents: Table Of Contents
17- Async JavaScript Promises & Callbacks Module Introduction Understanding Synchronous Code Execution (“Sync Code”) Understanding Asynchronous Code Execution (“Async Code”) Blocking Code & The “Event Loop” Sync + Async Code - The Execution Order Multiple Callbacks & setTimeout(0) Asynchronous Code Getting Started with Promises Chaining Multiple Promises Promise Error Handling Promise States & “finally” Async/ await Async/ await & Error Handling Async/ await vs “Raw Promises” Promise.
Table Of Contents: Table Of Contents
18- Working with Http Requests Module Introduction What & Why How The Web Works More Background about Http Getting Started with Http Sending a GET Request JSON Data & Parsing Data JSON Data Deep Dive Promisifying Http Requests (with XMLHttpRequest) Sending Data with a POST Request Triggering Requests via the UI The “Fetch” Button Always Appends Sending a DELETE Request Handling Errors Using the fetch() API POSTing Data with the fetch() API Adding Request Headers fetch() & Error Handling XMLHttpRequest vs fetch() Working with FormData Wrap Up Useful Resources & Links
Table Of Contents: Table Of Contents
19- Working with JavaScript Libraries Module Introduction What & Why Adding Libraries (Example: lodash) Example: jQuery Discovering Libraries Axios Library & Http Requests Third-Party Library Considerations Wrap Up Useful Resources & Links
To view this video please enable JavaScript, and consider upgrading to a web browser that
Table Of Contents: Table Of Contents
20- Modular JavaScript (Working with Modules) Module Introduction Splitting Code in a Sub-optimal Way A First Step Towards JavaScript Modules We Need a Development Server! First import / export Work Switching All Files To Use Modules More Named Export Syntax Variations Working With Default Exports Dynamic Imports & Code Splitting When Does Module Code Execute? Module Scope & globalThis Modules Wrap Up Useful Resources & Links
Table Of Contents: Table Of Contents
21- JavaScript Tooling & Workflows Module Introduction Project Limitations & Why We Need Tools Workflow Overview Setting Up a npm Project Working with npm Packages Linting with ESLint Configuring ESLint Bundling with Webpack Bonus: Multiple Entry Points Development Mode & Fixing “Lazy Loading” Using webpack-dev-server Generating Sourcemaps Building For Production Final Optimizations Using Third Party Packages with npm & Webpack Wrap Up Useful Resources & Links
Table Of Contents: Table Of Contents
22- Utilizing Browser Storage Module Introduction Browser Storage Options localStorage & sessionStorage Getting Started with Cookies Working with Cookies Getting Started with IndexedDB Working with IndexedDB Wrap Up Useful Resources & Links
To view this video please enable JavaScript, and consider upgrading to a web browser that
Table Of Contents: Table Of Contents
23- JavaScript & Browser Support Module Introduction What Is “Browser Support” About? Determining Browser Support For A JavaScript Feature Determining Required Support Solution: Feature Detection + Fallback Code Solution: Using Polyfills Solution: Transpiling Code Improvement: Automatically Detect + Add Polyfills What about Support Outside of Browsers? Browser Support Outside of JavaScript Files Wrap Up Useful Resources & Links
To view this video please enable JavaScript, and consider upgrading to a web browser that
Table Of Contents: Table Of Contents
24- Time to Practice Share My Place App Module Introduction Setting Up the Project Getting DOM Access Getting the User Location Adding Feedback (Showing a Modal) Hiding the Modal Rendering a Map with Google Maps Finding an Address & Getting the Coordinates Converting User Input to Coordinates Creating a “Share Place” Link Copying the Link to the Clipboard Rendering the “Shared Place” Screen Useful Resources & Links
Table Of Contents: Table Of Contents
25- Working with JavaScript Frameworks Module Introduction What and Why? The Idea Behind React.js Analysing a React Project Wrap Up Useful Resources & Links
To view this video please enable JavaScript, and consider upgrading to a web browser that
Table Of Contents: Table Of Contents
26- Meta-Programming Symbols, Iterators, Generators, Reflect API & Proxy API Module Introduction Understanding Symbols Well-known Symbols Understanding Iterators Generators & Iterable Objects Generators Summary & Built-in Iterables Examples The Reflect API The Proxy API and a First “Trap” Working with Proxy Traps Wrap Up Useful Resources & Links
To view this video please enable JavaScript, and consider upgrading to a web browser that
Table Of Contents: Table Of Contents
27- Node.js An Introduction Module Introduction JavaScript is a Hosted Language Installation & Basics Understanding Modules & File Access Working with Incoming Http Requests Sending Responses (HTML Data) Parsing Incoming Data Introducing & Installing Express.js Express.js: The Basics Extracting Data Rendering Server-side HTML with Templates & EJS Enhancing Our Project Adding Basic REST Routes Understanding CORS (Cross Origin Resource Sharing) Sending the Location ID to the Frontend Adding the GET Location Route Introducing MongoDB (Database) NodeJS Error Handling Wrap Up
Table Of Contents: Table Of Contents
28- Security Module Introduction Security Hole Overview & Exposing Data in your Code Cross-Site Scripting Attacks (XSS) Third-Party Libraries & XSS XSS & Exposing Confidential Details CSRF Attacks (Cross Site Request Forgery) CORS (Cross Origin Resource Sharing) Wrap Up Useful Resources & Links
To view this video please enable JavaScript, and consider upgrading to a web browser that
Table Of Contents: Table Of Contents
29- Deploying JavaScript Code Module Introduction Deployment Steps Different Types of Websites Example: Static Host Deployment (no Server-side Code) Injecting Script Imports Into HTML Automatically Example: Dynamic Page Deployment (with Server-side Code) Useful Resources & Links
To view this video please enable JavaScript, and consider upgrading to a web browser that
Table Of Contents: Table Of Contents
30- Performance & Optimizations Module Introduction What is “Performance Optimization” About? Optimization Potentials Measuring Performance Diving Into The Browser Devtools (for Performance Measuring) Further Resources Preparing The Testing Setup Optimizing Startup Time & Code Usage / Coverage Updating The DOM Correctly Updating Lists Correctly Optimizing The Small Things Micro-Optimizations (Think Twice!) Finding & Fixing Memory Leaks Server-side Performance Optimizations Wrap Up Useful Resources & Links
Table Of Contents: Table Of Contents
31- Introduction to Testing Module Introduction What Is Testing? Why Does It Matter? Testing Setup Writing & Running Unit Tests Writing & Running Integration Tests Writing & Running e2e Tests Dealing with Async Code Working with Mocks Useful Resources & Links
To view this video please enable JavaScript, and consider upgrading to a web browser that
Table Of Contents: Table Of Contents
32- Roundup & Next Steps Congratulations! Bonus! (Next Steps Overview / Other Topics)
To view this video please enable JavaScript, and consider upgrading to a web browser that