Introduction
This repository was created with the intention of helping developers master their concepts in JavaScript. It is not a requirement, but a guide for future studies. It is based on an article written by Stephen Curtis and you can read it here.
Community
Feel free to submit a PR adding a link to your own recaps or reviews. If you want to translate the repo into your native language, please feel free to do so.
- Chinese — Re Tian
Table of Contents
- Call Stack
- Primitive Types
- Value Types and Reference Types
- Implicit, Explicit, Nominal, Structuring and Duck Typing
- == vs === vs typeof
- Function Scope, Block Scope and Lexical Scope
- Expression vs Statement
- IIFE, Modules and Namespaces
- Message Queue and Event Loop
- setTimeout, setInterval and requestAnimationFrame
- JavaScript Engines
- Bitwise Operators, Type Arrays and Array Buffers
- DOM and Layout Trees
- Factories and Classes
- this, call, apply and bind
- new, Constructor, instanceof and Instances
- Prototype Inheritance and Prototype Chain
- Object.create and Object.assign
- map, reduce, filter
- Pure Functions, Side Effects and State Mutation
- Closures
- High Order Functions
- Recursion
- Collections and Generators
- Promises
- async/await
- Data Structures
- Expensive Operation and Big O Notation
- Algorithms
- Inheritance, Polymorphism and Code Reuse
- Design Patterns
- Partial Applications, Currying, Compose and Pipe
- Clean Code
1. Call Stack
Reference
Articles
📜 Understanding Javascript Call Stack, Event Loops — Gaurav Pandvia📜 Understanding the JavaScript Call Stack — Charles Freeborn📜 Javascript: What Is The Execution Context? What Is The Call Stack? — Valentino Gagliardi📜 What is the JS Event Loop and Call Stack? — Jess Telford📜 Understanding Execution Context and Execution Stack in Javascript — Sukhjinder Arora📜 How JavaScript Works: An Overview of the Engine, the Runtime, and the Call Stack — Alexander Zlatkov📜 The Ultimate Guide to Execution Contexts, Hoisting, Scopes, and Closures in JavaScript — Tyler McGinnis📜 How JavaScript Works Under The Hood: An Overview of JavaScript Engine, Heap and, Call Stack — Bipin Rajbhar
Videos
🎥 Javascript: the Call Stack explained — Coding Blocks India🎥 The JS Call Stack Explained In 9 Minutes — Colt Steele🎥 JavaScript Execution Stack — Codecademy🎥 What is the Call Stack? — Eric Traub🎥 The Call Stack — Kevin Drumm🎥 Understanding JavaScript Execution — Codesmith🎥 The Ultimate Guide to Execution Contexts, Hoisting, Scopes, and Closures in JavaScript — Tyler McGinnis🎥 What the heck is the event loop anyway? — Philip Roberts🎥 La PILA DE EJECUCIÓN (Call Stack) de JavaScript — La Cocina del Código🎥 How JavaScript Code is executed?❤️ & Call Stack
2. Primitive Types
Reference
Articles
📜 How numbers are encoded in JavaScript — Dr. Axel Rauschmayer📜 What You Need to Know About JavaScript Number Type — Max Wizard K📜 What Every JavaScript Developer Should Know About Floating Point Numbers — Chewxy📜 The Secret Life of JavaScript Primitives — Angus Croll📜 Primitive Types — Flow📜 (Not) Everything in JavaScript is an Object — Daniel Li📜 JavaScript data types and data structures — MDN📜 Diving Deeper in JavaScripts Objects — Arfat Salman📜 The differences between Object.freeze() vs Const in JavaScript — Bolaji Ayodeji
Videos
🎥 JavaScript Reference vs Primitive Types — Academind🎥 JavaScript Primitive Types — Simon Sez IT🎥 Value Types and Reference Types in JavaScript — Programming with Mosh🎥 JavaScript Primitive Data Types — Avelx🎥 Everything you never wanted to know about JavaScript numbers — Bartek Szopka🎥 What are variables in Javascript? — JS For Everyone🎥 TIPOS DE DATOS PRIMITIVOS en JAVASCRIPT - La Cocina del Código
3. Value Types and Reference Types
Articles
📜 Explaining Value vs. Reference in Javascript — Arnav Aggarwal📜 Primitive Types & Reference Types in JavaScript — Bran van der Meer📜 Value Types, Reference Types and Scope in JavaScript — Ben Aston📜 Back to roots: JavaScript Value vs Reference — Miro Koczka📜 Grasp “By Value” and “By Reference” in JavaScript — Léna Faure📜 JavaScript Reference and Copy Variables — Vítor Capretz📜 JavaScript Primitive vs Reference Values📜 JavaScript by Reference vs. by Value — nrabinowitz📜 JavaScript Interview Prep: Primitive vs. Reference Types — Mike Cronin
Videos
🎥 Javascript Pass by Value vs Pass by Reference — techsith🎥 JavaScript Value vs Reference Types — Programming with Mosh🎥 VALORES vs REFERENCIAS en JAVASCRIPT - La Cocina del Código
4. Implicit, Explicit, Nominal, Structuring and Duck Typing
Articles
📜 What you need to know about Javascript's Implicit Coercion — Promise Tochi📜 JavaScript Type Coercion Explained — Alexey Samoshkin📜 Javascript Coercion Explained — Ben Garrison📜 What exactly is Type Coercion in Javascript? - Stack Overflow📜 Type Coercion in JavaScript, and why everyone gets it wrong.
Videos
🎥 == ? === ??? ...#@^% - Shirmung Bielefeld🎥 Coercion in Javascript - Hitesh Choudhary🎥 JavaScript Questions: What is Coercion? - Steven Hancock🎥 Typing: Static vs Dynamic, Weak vs. Strong - Codexpanse🎥 EL SISTEMA de TIPOS DE JAVASCRIPT - La Cocina del Código
Books
5. == vs === vs typeof
Articles
📜 JavaScript Double Equals vs. Triple Equals — Brandon Morelli📜 Should I use === or == equality comparison operator in JavaScript? — Panu Pitkamaki📜 == vs === JavaScript: Double Equals and Coercion — AJ Meyghani📜 Why Use the Triple-Equals Operator in JavaScript? — Louis Lazaris📜 What is the difference between == and === in JavaScript? — Craig Buckler📜 Why javascript's typeof always return "object"? — Stack Overflow📜 Checking Types in Javascript — Toby Ho📜 How to better check data types in JavaScript — Webbjocke📜 Checking for the Absence of a Value in JavaScript — Tomer Aberbach
Videos
6. Function Scope, Block Scope and Lexical Scope
Books
Articles
📜 JavaScript Functions — Understanding The Basics — Brandon Morelli📜 The battle between Function Scope and Block Scope — Marius Herring📜 Emulating Block Scope in JavaScript — Josh Clanton📜 The Difference Between Function and Block Scope in JavaScript — Joseph Cardillo📜 Function Scopes and Block Scopes in JavaScript — Samer Buna📜 Understanding Scope and Context in JavaScript | Ryan Morr📜 JavaScript Scope and Closures — Zell Liew📜 Understanding Scope in JavaScript — Wissam Abirached📜 Speaking JavaScript - Variables: Scopes, Environments, and Closures — Dr. Axel Rauschmayer📜 Understanding Scope in JavaScript ― Hammad Ahmed📜 When to use a function declaration vs. a function expression ― Amber Wilkie📜 A JavaScript Fundamentals Cheat Sheet: Scope, Context, and “this” ― Alexandra Fren
Videos
🎥 What Makes Javascript Weird ... and Awesome pt. 4 — LearnCode.academy🎥 Variable Scope in JavaScript — Kirupa Chinnathambi🎥 JavaScript Block Scope and Function Scope — mmtuts🎥 What the Heck is Lexical Scope? — NWCalvank
7. Expression vs Statement
Articles
📜 All you need to know about Javascript's Expressions, Statements and Expression Statements — Promise Tochi📜 Function Expressions vs Function Declarations — Paul Wilkins📜 JavaScript Function — Declaration vs Expression — Ravi Roshan📜 Function Declarations vs. Function Expressions — Mandeep Singh📜 Function Declarations vs. Function Expressions — Anguls Croll
Videos
🎥 Expressions vs. Statements in JavaScript — Hexlet🎥 JavaScript - Expression vs. Statement — WebTunings
8. IIFE, Modules and Namespaces
Articles
📜 Mastering Immediately-Invoked Function Expressions ― Chandra Gundamaraju📜 Do ES6 Modules make the case of IIFEs obsolete?📜 A 10 minute primer to JavaScript modules, module formats, module loaders and module bundlers ― Jurgen Van de Moere📜 Modules ― Exploring JS📜 ES modules: A cartoon deep-dive — Lin Clark📜 Understanding ES6 Modules — Craig Buckler📜 An overview of ES6 Modules in JavaScript — Brent Graham📜 ES6 Modules in Depth — Nicolás Bevacqua📜 ES6 modules, Node.js and the Michael Jackson Solution — Alberto Gimeno📜 JavaScript Modules: A Beginner’s Guide — Preethi Kasireddy📜 Using JavaScript modules on the web📜 IIFE: Immediately Invoked Function Expressions — Parwinder
Videos
🎥 Immediately Invoked Function Expression - Beau teaches JavaScript — freeCodeCamp🎥 Understanding JavaScript IIFE🎥 JavaScript Modules: ES6 Import and Export — Kyle Robinson🎥 ES6 - Modules — Ryan Christiani🎥 ES6 Modules in the Real World — Sam Thorogood🎥 ES6 Modules — TempleCoding
9. Message Queue and Event Loop
Articles
📜 JavaScript Event Loop Explained — Anoop Raveendran📜 The JavaScript Event Loop: Explained — Erin Sweson-Healey📜 Understanding JS: The Event Loop — Alexander Kondov📜 Understanding the JavaScript Event Loop — Ashish Gupta📜 Event Loop in Javascript — Manjula Dube📜 The JavaScript Event Loop — Flavio Copes📜 How JavaScript works: Event loop — Alexander Zlatkov📜 Tasks, microtasks, queues and schedules — Jake Archibald📜 Visualising the JavaScript Event Loop with a Pizza Restaurant analogy — Priyansh Jain📜 JavaScript Visualized: Event Loop — Lydia Hallie
Videos
🎥 What the heck is the event loop anyway? | JSConf EU — Philip Roberts🎥 JavaScript Event Loop — ComScience Simplified🎥 I'm stuck in an Event Loop — Philip Roberts🎥 In The Loop - Jake Archibald | JSConf.Asia 2018🎥 Desmitificando el Event Loop (Spanish)
10. setTimeout, setInterval and requestAnimationFrame
Articles
📜 setTimeout and setInterval — JavaScript.Info📜 Why not to use setInterval — Akanksha Sharma📜 setTimeout VS setInterval — Develoger📜 Using requestAnimationFrame — Chris Coyier📜 Understanding JavaScript's requestAnimationFrame() — JavaScript Kit📜 Handling time intervals in JavaScript - Amit Merchant
Videos
🎥 Javascript: How setTimeout and setInterval works — Coding Blocks India🎥 setTimeout and setInterval in JavaScript — techsith🎥 JavaScript Timers — Steve Griffith🎥 JavaScript setTimeOut and setInterval Explained — Theodore Anderson
11. JavaScript Engines
Articles
📜 JavaScript Engines — Jen Looper📜 Understanding How the Chrome V8 Engine Translates JavaScript into Machine Code — DroidHead📜 Understanding V8’s Bytecode — Franziska Hinkelmann📜 A Brief History of Google’s V8 Javascript Engine — Clair Smith📜 JavaScript essentials: why you should know how the engine works - Rainer Hahnekamp📜 JavaScript engine fundamentals: Shapes and Inline Caches📜 JavaScript engine fundamentals: optimizing prototypes📜 How V8 optimizes array operations
Videos
12. Bitwise Operators, Type Arrays and Array Buffers
Articles
📜 Programming with JS: Bitwise Operations — Alexander Kondov📜 Using JavaScript’s Bitwise Operators in Real Life — ian m📜 JavaScript Bitwise Operators — w3resource📜 Bitwise Operators in Javascript — Joe Cha📜 A Comprehensive Primer on Binary Computation and Bitwise Operators in Javascript — Paul Brown📜 How can I understand Bitwise operation in JavaScript?
Videos
13. DOM and Layout Trees
Books
Articles
📜 How To Understand and Modify the DOM in JavaScript — Tania Rascia📜 What’s the Document Object Model, and why you should know how to use it — Leonardo Maldonado📜 JavaScript DOM Tutorial with Example — Guru99📜 What is the DOM? — Chris Coyier📜 Traversing the DOM with JavaScript — Zell Liew📜 DOM Tree📜 How to traverse the DOM in Javascript — Vojislav Grujić📜 Render Tree Construction — Ilya Grigorik📜 What exactly is the DOM?📜 A Vanilla JS Guide On Mastering the DOM — Brian Pak
Videos
14. Factories and Classes
Articles
📜 How To Use Classes in JavaScript — Tania Rascia📜 Javascript Classes — Under The Hood — Majid📜 ES6 Classes — Nathaniel Foster📜 Better JavaScript with ES6, Pt. II: A Deep Dive into Classes ― Peleke Sengstacke📜 Understand the Factory Design Pattern in Plain JavaScript — Aditya Agarwal📜 Factory Functions in JavaScript — Josh Miller📜 The Factory Pattern in JS ES6 — SnstsDev📜 Class vs Factory function: exploring the way forward — Cristi Salcescu📜 How ES6 classes really work and how to build your own — Robert Grosse📜 Understandingsuper
in JavaScript📜 An Easy Guide To Understanding Classes In JavaScript
Videos
🎥 JavaScript Factory Functions — Programming with Mosh🎥 Factory Functions in JavaScript — Fun Fun Function🎥 Javascript Tutorial Function Factories — Crypto Chan
15. this, call, apply and bind
Reference
Articles
📜 Grokking call(), apply() and bind() methods in JavaScript — Aniket Kudale📜 How-to: call() , apply() and bind() in JavaScript — Niladri Sekhar Dutta📜 JavaScript’s Apply, Call, and Bind Methods are Essential for JavaScript Professionals — Richard Bovell📜 WTF is this - Understanding the this keyword, call, apply, and bind in JavaScript — Tyler McGinnis📜 Javascript: call(), apply() and bind() — Omer Goldberg📜 The difference between call / apply / bind — Ivan Sifrim📜 What the hack is call, apply, bind in JavaScript — Ritik📜 Mastering 'this' in JavaScript: Callbacks and bind(), apply(), call() — Michelle Gienow📜 JavaScript’s apply, call, and bind explained by hosting a cookout — Kevin Kononenko📜 How AND When to use bind, call, and apply in Javascript — Eigen X📜 JavaScript .bind() vs .apply() and .call() — Hack Sparrow📜 Let me explain to you what isthis
. (Javascript) — Jason Yu📜 Understanding the “this” Keyword in JavaScript — Pavan📜 How to understand the keyword this and context in JavaScript — Lukas Gisder-Dubé📜 What the heck is this in Javascript? — Hridayesh Sharma📜 This and Bind In Javascript — Brian Barbour📜 3 Techniques for Maintaining Your Sanity Using "This" in JavaScript — Carl📜 Mastering the JavaScript "this" Keyword — Aakash Srivastav📜 This binding in JavaScript – 4. New binding — Spyros Argalias📜 A quick intro to 'this' in JavaScript — Natalie Smith📜 Explaining JavaScript 'this' to my cat — Andrey K📜 A conversation with the 'this' keyword in Javascript — Karen Efereyan📜 What are call(), apply() and bind() in JavaScript — Amitav Mishra📜 Understanding 'this' binding in JavaScript — Yasemin Cidem
Videos
🎥 JavaScript call, apply and bind — techsith🎥 JavaScript Practical Applications of Call, Apply and Bind functions— techsith🎥 JavaScript (call, bind, apply) — curious aatma🎥 Understanding Functions and 'this' In The World of ES2017 — Bryan Hughes🎥 bind and this - Object Creation in JavaScript - FunFunFunction🎥 JS Function Methods call(), apply(), and bind() — Steve Griffith
16. new, Constructor, instanceof and Instances
Articles
📜 JavaScript For Beginners: the ‘new’ operator — Brandon Morelli📜 Let’s demystify JavaScript’s ‘new’ keyword — Cynthia Lee📜 Constructor, operator "new" — JavaScript.Info📜 Understanding JavaScript Constructors — Faraz Kelhini📜 Use Constructor Functions — Openclassrooms📜 Beyondtypeof
andinstanceof
: simplifying dynamic type checks — Dr. Axel Rauschmayer📜 What Is the Instanceof Operator in JavaScript — appendTo📜 Function and Object, instances of each other — Kiro Risk
17. Prototype Inheritance and Prototype Chain
Reference
Articles
📜 Javascript : Prototype vs Class — Valentin PARSY📜 JavaScript engine fundamentals: optimizing prototypes — Mathias Bynens📜 JavaScript Prototype — NC Patro📜 Prototype in Javascript — Sandeep Ranjan📜 Prototypes in JavaScript — Rupesh Mishra📜 Prototype in JavaScript: it’s quirky, but here’s how it works — Pranav Jindal📜 Understanding JavaScript: Prototype and Inheritance — Alexander Kondov📜 Understanding Classes (ES5) and Prototypal Inheritance in JavaScript — Hridayesh Sharma📜 prototype, proto and Prototypal inheritance in JavaScript — Varun Dey📜 Prototypal Inheritance — JavaScript.Info📜 How To Work with Prototypes and Inheritance in JavaScript — Tania Rascia📜 Master JavaScript Prototypes & Inheritance — Arnav Aggarwal📜 JavaScript’s Prototypal Inheritance Explained Using CSS — Nash Vail📜 Prototypal Inheritance in JavaScript — Jannis Redmann📜 Demystifying ES6 Classes And Prototypal Inheritance ― Neo Ighodaro📜 Intro To Prototypal Inheritance — Dharani Jayakanthan📜 Let’s Build Prototypal Inheritance in JS — var-che📜 Objects, Prototypes and Classes in JavaScript — Atta📜 The magical world of JavaScript prototypes — Belén📜 Understanding Prototypal Inheritance In JavaScript — Lawrence Eagles📜 Objects and Prototypes in JavaScript — Irena Popova
Videos
🎥 Javascript Prototype Inheritance — Avelx🎥 JavaScript Prototype Inheritance Explained pt. I — techsith🎥 JavaScript Prototype Inheritance Explained pt. II — techsith🎥 JavaScript Prototype Inheritance Explained — Kyle Robinson🎥 Advanced Javascript - Prototypal Inheritance In 1 Minute🎥 An Overview Of Classical Javascript Classes and Prototypal Inheritance — Pentacode🎥 Object Oriented JavaScript - Prototype — The Net Ninja🎥 Prototype in JavaScript — kudvenkat🎥 JavaScript Using Prototypes — O'Reilly🎥 A Beginner's Guide to Javascript's Prototype — Tyler Mcginnis🎥 Prototypes in Javascript - p5.js Tutorial — The Coding Train
Books
18. Object.create and Object.assign
Reference
Articles
📜 Object.create in JavaScript — Rupesh Mishra📜 Object.create(): the New Way to Create Objects in JavaScript — Rob Gravelle📜 Basic Inheritance with Object.create — Joshua Clanton📜 Object.create() In JavaScript — GeeksforGeeks📜 Understanding the difference between Object.create() and the new operator — Jonathan Voxland📜 JavaScript Object Creation: Patterns and Best Practices — Jeff Mott📜 Dealing With Objects in JavaScript With Object.assign, Object.keys and hasOwnProperty📜 Copying Objects in JavaScript ― Orinami Olatunji📜 JavaScript: Object.assign() — Thiago S. Adriano📜 How to deep clone a JavaScript Object — Flavio Copes📜 Object.create(): When and Why to Use — VZing
Videos
19. map, reduce, filter
Articles
📜 JavaScript Functional Programming — map, filter and reduce — Bojan Gvozderac📜 Learn map, filter and reduce in Javascript — João Miguel Cunha📜 JavaScript’s Map, Reduce, and Filter — Dan Martensen📜 How to Use Map, Filter, & Reduce in JavaScript — Peleke Sengstacke📜 JavaScript — Learn to Chain Map, Filter, and Reduce — Brandon Morelli📜 Javascript data structure with map, reduce, filter and ES6 — Deepak Gupta📜 Understanding map, filter and reduce in Javascript — Luuk Gruijs📜 Functional Programming in JS: map, filter, reduce (Pt. 5) — Omer Goldberg📜 JavaScript: Map, Filter, Reduce — William S. Vincent📜 Arrow Functions: Fat and Concise Syntax in JavaScript — Kyle Pennell📜 JavaScript: Arrow Functions for Beginners — Brandon Morelli📜 When (and why) you should use ES6 arrow functions — and when you shouldn’t — Cynthia Lee📜 JavaScript — Learn & Understand Arrow Functions — Brandon Morelli📜 (JavaScript )=> Arrow functions — sigu📜 Javascript.reduce() — Paul Anderson📜 Why you should replace forEach with map and filter in JavaScript — Roope Hakulinen📜 Simplify your JavaScript – Use .map(), .reduce(), and .filter() — Etienne Talbot📜 JavaScript’s Reduce Method Explained By Going On a Diet — Kevin Kononenko📜 Difference between map, filter and reduce in JavaScript — Amirata Khodaparast📜 Map⇄Filter⇄Reduce↻ — ashay mandwarya📜 Finding Your Way With .map() — Brandon Wozniewicz📜 How to write your own map, filter and reduce functions in JavaScript — Hemand Nair📜 How to Manipulate Arrays in JavaScript — Bolaji Ayodeji📜 How to simplify your codebase with map(), reduce(), and filter() in JavaScript — Alex Permyakov📜 .map(), .filter(), and .reduce() — Andy Pickle📜 Map/Filter/Reduce Crash Course — Chris Achard📜 Map, Filter and Reduce – Animated — JavaScript Teacher📜 Map, Filter, Reduce and others Arrays Iterators You Must Know to Become an Algorithms Wizard — Mauro Bono📜 How to Use JavaScript’s .map, .filter, and .reduce — Avery Duffin📜 Javascript performance test - for vs for each vs (map, reduce, filter, find) — Deepak Gupta📜 Using .map(), .filter() and .reduce() properly — Sasanka Kudagoda📜 Mastering the JavaScript Reduce method✂️ — sanderdebr
Videos
🎥 Map, Filter and Reduce — Lydia Hallie🎥 Functional JavaScript: Map, forEach, Reduce, Filter — Theodore Anderson🎥 JavaScript Array superpowers: Map, Filter, Reduce (part I) — Michael Rosata🎥 JavaScript Array superpowers: Map, Filter, Reduce (part 2) — Michael Rosata🎥 JavaScript Higher Order Functions - Filter, Map, Sort & Reduce — Epicop🎥 [Array Methods 2/3] .filter + .map + .reduce — CodeWithNick🎥 Arrow functions in JavaScript - What, Why and How — Fun Fun Function🎥 Learning Functional Programming with JavaScript — Anjana Vakil - JSUnconf🎥 Map - Parte 2 JavaScript - Fun Fun Function🎥 Reduce basics - Part 3 of FP in JavaScript - Fun Fun Function🎥 Reduce Advanced - Part 4 of FP in JavaScript - Fun Fun Function🎥 reduce Array Method | JavaScript Tutorial - Florin Pop🎥 map Array Method | JavaScript Tutorial - Florin Pop
20. Pure Functions, Side Effects, State Mutation and Event Propagation
Articles
📜 Javascript and Functional Programming — Pure Functions — Omer Goldberg📜 Master the JavaScript Interview: What is a Pure Function? — Eric Elliott📜 JavaScript: What Are Pure Functions And Why Use Them? — James Jeffery📜 Pure functions in JavaScript — @nicoespeon📜 Functional Programming: Pure Functions — Arne Brasseur📜 Pure Functions In Javascript — Krunal📜 Making your JavaScript Pure — Jack Franklin📜 Arrays, Objects and Mutations — Federico Knüssel📜 The State of Immutability — Maciej Sikora📜 How to deal with dirty side effects in your pure functional JavaScript — James Sinclair📜 Preventing Side Effects in JavaScript — David Walsh📜 Wielding Pure Functions in JavaScript and Function Composition — Peleke Sengstacke📜 JavaScript: Pure Functions — William S. Vincent📜 Functional programming paradigms in modern JavaScript: Pure functions — Alexander Kondov📜 Understanding Javascript Mutation and Pure Functions — Chidume Nnamdi📜 Functional-ish JavaScript — Daniel Brain📜 Event Propagation — MDN📜 Event Propagation — Bubbling and capturing
Videos
🎥 Pure Functions — Hexlet🎥 Pure Functions - Functional Programming in JavaScript — Paul McBride🎥 JavaScript Pure Functions — Seth Alexander🎥 JavaScript Pure vs Impure Functions Explained — Theodore Anderson🎥 Pure Functions - Programação Funcional: Parte 1 - Fun Fun Function🎥 Event Propagation - JavaScript Event Bubbling and Propagation - Steve Griffith
21. Closures
Reference
Articles
📜 I never understood JavaScript closures — Olivier De Meulder📜 Understand JavaScript Closures With Ease — Richard Bovell📜 Understanding JavaScript Closures — Codesmith📜 Understand Closures in JavaScript — Brandon Morelli📜 A simple guide to help you understand closures in JavaScript — Prashant Ram📜 Understanding JavaScript Closures: A Practical Approach — Paul Upendo📜 Understanding JavaScript: Closures — Alexander Kondov📜 How to use JavaScript closures with confidence — Léna Faure📜 JavaScript closures by example — tyler📜 JavaScript — Closures and Scope — Alex Aitken📜 Discover the power of closures in JavaScript — Cristi Salcescu📜 Simplified JavaScript: Getting Started with Closures — Code Like A Girl📜 The Ultimate Guide to Hoisting, Scopes, and Closures in JavaScript — Tyler McGinnis📜 Getting Closure — RealLifeJS📜 Closure, Currying and IIFE in JavaScript — Ritik📜 Understanding Closures in JavaScript — Sukhjinder Arora📜 A basic guide to Closures in JavaScript — Parathan Thiyagalingam📜 Closures: Using Memoization — Brian Barbour📜 A Brief Introduction to Closures and Lexical Scoping in JavaScript — Ashutosh K Singh📜 Demystify Closures — stereobooster📜 Scopes and Closures - JavaScript Concepts — Agney Menon📜 Understanding Closures in JavaScript — Matt Popovich📜 whatthefuck.is · A Closure - Dan Abramov📜 Closures in JavaScript can... - Brandon LeBoeuf
Videos
🎥 JavaScript The Hard Parts: Closure, Scope & Execution Context - Codesmith🎥 Javascript Closure — techsith🎥 Closures — Fun Fun Function🎥 Closures in JavaScript — techsith🎥 JavaScript Closures 101: What is a closure? — JavaScript Tutorials🎥 Closures — freeCodeCamp🎥 JavaScript Closures — CodeWorkr
22. High Order Functions
Books
Articles
📜 Higher-Order Functions in JavaScript — M. David Green📜 Higher Order Functions: Using Filter, Map and Reduce for More Maintainable Code — Guido Schmitz📜 First-class and Higher Order Functions: Effective Functional JavaScript — Hugo Di Francesco📜 Higher Order Functions in JavaScript — John Hannah📜 Higher-order Functions — Richard Bovell📜 Fun With Higher Order Functions In JavaScript — Derick📜 Just a reminder on how to use high order functions — Pedro Filho📜 Understanding Higher-Order Functions in JavaScript — Sukhjinder Arora📜 Higher Order Functions - A pragmatic approach — emmanuel ikwuoma
Videos
🎥 JavaScript Higher Order Functions & Arrays — Traversy Media🎥 Higher Order Functions — Fun Fun Function🎥 Higher Order Functions in Javascript — Raja Yogan🎥 Higher Order Iterators in JavaScript — Fun Fun Function🎥 Higher Order Functions in JavaScript — The Coding Train🎥 Part 1: An Introduction to Callbacks and Higher Order Functions - Codesmith🎥 Part 2: Understanding Why We Need Higher Order Functions - Codesmith🎥 Higher-Order Functions ft. Functional Programming - Akshay Saini
23. Recursion
Articles
📜 Recursion in JavaScript — Kevin Ennis📜 Understanding Recursion in JavaScript — Zak Frisch📜 Learn and Understand Recursion in JavaScript — Brandon Morelli📜 Recursion in Functional JavaScript — M. David Green📜 Programming with JS: Recursion — Alexander Kondov📜 Anonymous Recursion in JavaScript — simo📜 Recursion, iteration and tail calls in JS — loverajoel📜 Understanding Recursion in JavaScript with Confidence — Jay📜 Intro to Recursion — Brad Newman📜 Accio Recursion!: Your New Favorite JavaScript Spell — Leanne Cabey📜 Recursion Explained (with Examples) — Christina
Videos
🎥 Recursion In JavaScript — techsith🎥 Recursion — Fun Fun Function🎥 Recursion and Recursive Functions — Hexlet🎥 Recursion: Recursion() — JS Monthly — Lucas da Costa🎥 Recursive Function in JavaScript — kudvenkat🎥 What on Earth is Recursion? — Computerphile🎥 Javascript Tutorial 34: Introduction To Recursion — codedamn🎥 Recursion, Iteration, and JavaScript: A Love Story | JSHeroes 2018 — Anjana Vakil
24. Collections and Generators
Reference
Articles
📜 ES6 In Depth: Collections — Jason Orendorff📜 ES6 Collections: Using Map, Set, WeakMap, WeakSet — Kyle Pennell📜 ES6 WeakMaps, Sets, and WeakSets in Depth — Nicolás Bevacqua📜 Introduction to Sets in JavaScript — Alligator.io📜 Introduction to Maps in JavaScript — Alligator.io📜 Map, Set, WeakMap and WeakSet — JavaScript.Info📜 Maps in ES6 - A Quick Guide — Ben Mildren📜 ES6 — Set vs Array — What and when? — Maya Shavin📜 ES6 — Map vs Object — What and when? — Maya Shavin📜 ES6: Working with Sets in JavaScript — Dead Code Rising📜 Array vs Set vs Map vs Object — Real-time use cases in Javascript (ES6/ES7) — Rajesh Babu📜 How to create an array of unique values in JavaScript using Sets — Claire Parker-Jones📜 What You Should Know About ES6 Maps — Just Chris📜 ES6 Maps in Depth — Nicolás Bevacqua📜 What are JavaScript Generators and how to use them — Vladislav Stepanov📜 Understanding JavaScript Generators With Examples — Arfat Salman📜 The Basics of ES6 Generators — Kyle Simpson📜 An Introduction to JavaScript Generators — Alice Kallaugher
Videos
🎥 JavaScript ES6 / ES2015 Set, Map, WeakSet and WeakMap — Traversy Media🎥 The Differences between ES6 Maps and Sets — Steve Griffith🎥 Javascript Generators - THEY CHANGE EVERYTHING - ES6 Generators Harmony Generators — LearnCode.academy
25. Promises
Reference
Articles
📜 JavaScript Promises for Dummies ― Jecelyn Yeen📜 Understanding promises in JavaScript — Gokul N K📜 Master the JavaScript Interview: What is a Promise? — Eric Elliott📜 An Overview of JavaScript Promises — Sandeep Panda📜 How to use Promises in JavaScript — Prashant Ram📜 Implementing Promises In JavaScript — Maciej Cieslar📜 JavaScript: Promises explained with simple real life analogies — Shruti Kapoor📜 Promises for Asynchronous Programming — Exploring JS📜 JavaScript Promises Explained By Gambling At A Casino — Kevin Kononenko📜 ES6 Promises: Patterns and Anti-Patterns — Bobby Brennan📜 A Simple Guide to ES6 Promises — Brandon Morelli📜 The ES6 Promises — Manoj Singh Negi📜 ES6 Promises in Depth — Nicolás Bevacqua📜 Playing with Javascript Promises: A Comprehensive Approach — Rajesh Babu📜 How to Write a JavaScript Promise — Brandon Wozniewicz📜 A Coding Writer’s Guide: An Introduction To ES6 Promises — Andrew Ly📜 Understanding Promises in JavaScript — Chris Noring📜 Converting callbacks to promises — Zell Liew📜 JavaScript Promises: Zero To Hero Plus Cheat Sheet — Joshua Saunders📜 Promises - JavaScript concepts — Agney Menon📜 JavascriptPromise
101 — Igor Irianto📜 Simplify JavaScript Promises — Sunny Singh📜 The Lowdown on Promises — Aphinya Dechalert📜 JavaScript Visualized: Promises & Async/Await — Lydia Hallie📜 Promises in JavaScript — Peter Klingelhofer📜 Best Practices for ES6 Promises — Basti Ortiz
Videos
🎥 Let's Learn ES6 - Promises — Ryan Christiani🎥 JavaScript ES6 / ES2015 Promises — Traversy Media🎥 Promises — Fun Fun Function🎥 Error Handling Promises in JavaScript — Fun Fun Function🎥 Promises Part 1 - Topics of JavaScript/ES6 — The Coding Train
26. async/await
Reference
Books
📜 Eloquent JavaScript, 3rd Edition: Ch. 11 - Asynchronous Programming📜 Exploring JS: Asynchronous Programming
Articles
📜 Understanding async/await in Javascript — Gokul N K📜 Exploring Async/Await Functions in JavaScript — Alligator.io📜 Asynchronous Javascript using async/await — Joy Warugu📜 Modern Asynchronous JavaScript with async/await — Flavio Copes📜 Asynchronous JavaScript: From Callback Hell to Async and Await — Demir Selmanovic📜 Javascript — ES8 Introducing async/await Functions — Ben Garrison📜 How to escape async/await hell — Aditya Agarwal📜 Understanding JavaScript’s async await — Nicolás Bevacqua📜 JavaScript Async/Await: Serial, Parallel and Complex Flow — TechBrij📜 From JavaScript Promises to Async/Await: why bother? — Chris Nwamba📜 Flow Control in Modern JS: Callbacks to Promises to Async/Await — Craig Buckler📜 JavaScript: Promises and Why Async/Await Wins the Battle — Nick Parsons📜 How to improve your asynchronous Javascript code with async and await — Indrek Lasn📜 Making Fetches Easy With Async Await — Mickey Sheridan📜 7 Reasons Why JavaScript Async/Await Is Better Than Plain Promises — Mostafa Gaafar📜 Asynchronous Operations in JavaScript — Jscrambler📜 Async/await: A slight design flaw. — Joey📜 JavaScript: Promises or async-await — Gokul N K📜 Async / Await: From Zero to Hero — Zhi Yuan📜 JavaScript Visualized: Promises & Async/Await — Lydia Hallie
Videos
🎥 Async + Await — Wes Bos🎥 Asynchrony: Under the Hood — Shelley Vohr🎥 async/await in JavaScript - What, Why and How — Fun Fun Function🎥 async/await Part 1 - Topics of JavaScript/ES8 — The Coding Train🎥 async/await Part 2 - Topics of JavaScript/ES8 — The Coding Train🎥 Complete Guide to JS Async & Await ES2017/ES8 — Colt Steele
27. Data Structures
Articles
📜 Data Structures in JavaScript — Thon Ly📜 Algorithms and Data Structures in JavaScript — Oleksii Trekhleb📜 Data Structures: Objects and Arrays ― Chris Nwamba📜 Data structures in JavaScript — Benoit Vallon📜 Playing with Data Structures in Javascript — Anish K.📜 The Little Guide of Queue in JavaScript — Germán Cutraro📜 All algorithms writing with JavaScript in the book 'Algorithms Fourth Edition'📜 Collection of classic computer science paradigms in JavaScript📜 All the things you didn't know you wanted to know about data structures📜 JavaScript Data Structures: 40 Part Series — miku86📜 Data Structures: Understanding Graphs — Rachel Hawa📜 Data Structures Two Ways: Linked List (Pt 1) — Freddie Duffield📜 Data Structures Two Ways: Linked List (Pt 2) — Freddie Duffield📜 Graph Data Structures Explained in JavaScript — Adrian Mejia
Videos
🎥 Algorithms In Javascript | Ace Your Interview — Eduonix Learning Solutions🎥 Data Structures and Algorithms in JavaScript — freeCodeCamp🎥 Learning JavaScript Data Structures and Algorithms: Sorting — Packt Video
28. Expensive Operation and Big O Notation
Articles
📜 Big O Notation in Javascript — César Antón Dorantes📜 Time Complexity/Big O Notation — Tim Roberts📜 Big O in JavaScript — Gabriela Medina📜 Big O Search Algorithms in JavaScript — Bradley Braithwaite📜 Time Complexity Analysis in JavaScript — Jennifer Bland📜 Algorithms in plain English: time complexity and Big-O Notation — Michael Olorunnisola📜 An Introduction to Big O Notation — Joseph Trettevik
Videos
🎥 JavaScript: Intro to Big O Notation and Function Runtime — Eric Traub🎥 Essential Big O for JavaScript Developers — Dave Smith🎥 Big O Notation - Time Complexity Analysis — WebTunings
29. Algorithms
Articles
📜 Data Structures and Algorithms using ES6📜 Algorithms and data structures implemented in JavaScript with explanations and links to further readings📜 JS: Interview Algorithm📜 Algorithms in JavaScript — Thon Ly📜 JavaScript Objects, Square Brackets and Algorithms — Dmitri Grabov📜 Atwood's Law applied to CS101 - Classic algorithms and data structures implemented in JavaScript📜 Data Structures and Algorithms library in JavaScript📜 Collection of computer science algorithms and data structures written in JavaScript📜 Algorithms and Data Structures in JavaScript — Oleksii Trekhleb
30. Inheritance, Polymorphism and Code Reuse
Reference
Articles
📜 Inheritance in JavaScript — Rupesh Mishra📜 Simple Inheritance with JavaScript — David Catuhe📜 JavaScript — Inheritance, delegation patterns and Object linking — NC Patro📜 Object Oriented JavaScript: Polymorphism with examples — Knoldus Blogs📜 Program Like Proteus — A beginner’s guide to polymorphism in Javascript — Sam Galson📜 Object-oriented JavaScript: A Deep Dive into ES6 Classes — Jeff Mott
Videos
🎥 Inheritance in JavaScript — kudvenkat🎥 JavaScript ES6 Classes and Inheritance — Traversy Media🎥 Polymorphism in JavaScript — kudvenkat
31. Design Patterns
Books
Articles
📜 4 JavaScript Design Patterns You Should Know — Devan Patel📜 JavaScript Design Patterns – Beginner's Guide to Mobile Web Development — Soumyajit Pathak📜 JavaScript Design Patterns — Akash Pal📜 Javascript Design Patterns: What They Are & How To Use Them — Patrick Simpson📜 JavaScript Design Patterns: Understanding Design Patterns in JavaScript - Sukhjinder Arora📜 All the 23 (GoF) design patterns implemented in Javascript — Felipe Beline📜 The Power of the Module Pattern in JavaScript — jsmanifest📜 Design Patterns for Developers using JavaScript pt. I — Oliver Mensah📜 Design Patterns for Developers using JavaScript pt. II — Oliver Mensah📜 Design patterns in modern JavaScript development📜 Understanding Design Patterns: Iterator using Dev.to and Medium social networks! — Carlos Caballero📜 JavaScript Design Patterns - Factory Pattern — KristijanFištrek📜 JavaScript Design Pattern — Module Pattern - Factory Pattern — Moon📜 Design Patterns: Null Object - Carlos Caballero📜 Strategy Pattern - Francesco Ciulla📜 Adapter Pattern - Francesco Ciulla📜 The Power of Composite Pattern in JavaScript - jsmanifest📜 In Defense of Defensive Programming - Adam Nathaniel Davis
Videos
32. Partial Applications, Currying, Compose and Pipe
Books
Articles
📜 Use function composition in JavaScript — Rémi📜 Currying in JavaScript ES6 — Adam Bene📜 Composition and Currying Elegance in JavaScript — Pragyan Das📜 Functional JavaScript: Function Composition For Every Day Use — Joel Thoms📜 Functional Composition: compose() and pipe() — Anton Paras📜 Why The Hipsters Compose Everything: Functional Composing In JavaScript — A. Sharif📜 A Gentle Introduction to Functional JavaScript pt III: Functions for making functions — James Sinclair📜 Curry And Compose (why you should be using something like ramda in your code) — jsanchesleao📜 Function Composition in JavaScript with Pipe — Andy Van Slaars📜 Practical Functional JavaScript with Ramda — Andrew D'Amelio, Yuri Takhteyev📜 The beauty in Partial Application, Currying, and Function Composition — Joel Thoms📜 Curry or Partial Application? — Eric Elliott📜 Partial Application in JavaScript — Ben Alman📜 Partial Application of Functions — Functional Reactive Ninja📜 Currying vs Partial Application — Deepak Gupta📜 Partial Application in ECMAScript 2015 — Ragan Wald📜 Functional Composition in Javascript — Joe Cortopassi📜 So You Want to be a Functional Programmer pt. I — Charles Scalfani📜 So You Want to be a Functional Programmer pt. II — Charles Scalfani📜 So You Want to be a Functional Programmer pt. III — Charles Scalfani📜 So You Want to be a Functional Programmer pt. IV — Charles Scalfani📜 So You Want to be a Functional Programmer pt. V — Charles Scalfani📜 An introduction to the basic principles of Functional Programming — TK📜 Concepts of Functional Programming in Javascript — TK📜 An Introduction to Functional Programming Style in JavaScript — JavaScript Teacher📜 A practical guide to writing more functional JavaScript — Nadeesha Cabral📜 A simple explanation of functional pipe in JavaScript — Ben Lesh
Videos
🎥 Compose vs Pipe: Functional Programming in JavaScript — Chyld Studios🎥 JavaScript Functional Programing: Compose — Theodore Anderson🎥 Function Composition - Functional JavaScript — NWCalvank🎥 JavaScript Function Composition Explained — Theodore Anderson🎥 Let's code with function composition — Fun Fun Function🎥 Partial Application vs. Currying — NWCalvank🎥 JavaScript Partial Application — Theodore Anderson
33. Clean Code
Articles
📜 Clean Code concepts adapted for JavaScript — Ryan McDermott📜 JavaScript Clean Coding Best Practices — András Tóth📜 Function parameters in JavaScript Clean Code — Kevin Peters📜 Keeping your code clean — Samuel James📜 Best Practices for Using Modern JavaScript Syntax — M. David Green📜 best practices for cross node/web development - Jimmy Wärting📜 Writing Clean Code - Dylan Paulus📜 Writing Clean Code and The Practice of Programming - Nityesh Agarwal📜 Clean code, dirty code, human code - Daniel Irvine📜 Practical Ways to Write Better JavaScript - Ryland G
Videos
JavaScript开发者应懂的33个概念
简介
这个项目是为了帮助开发者掌握 JavaScript 概念而创立的。它不是必备,但在未来学习(JavaScript)中,可以作为一篇指南。
本篇文章是参照 @leonardomso 创立,英文版项目地址在这里。 由于原版资源都要翻墙,所以本人创立一个中文版,附上关于这些概念在国内的一些文章和视频。 若有觉得更好的文章或者视频,可以贡献出来,觉得有误的,请联系我删除。
更新
若有觉得更好的文章或者视频,可以贡献出来,觉得有误的,请联系我删除。
- 文章的排序优化,前面的文章是介绍概念,后面的文章是深入解读。
- 将原文的 "高阶函数" 和 "map, reduce, filter" 合并为 "map, reduce, filter 等高阶函数"
- 增加 "promise" 概念(替换删除的 "高阶函数")
- 2018-10-24 更新:@BuptStEve 贡献的三篇关于" 函数式编程 "方面的文章
- 2018-12-04 更新:@haner199401 贡献的 @冴羽 "JavaScript 深入之从原型到原型链"
目录
- 调用堆栈
- 原始类型
- 值类型和引用类型
- 隐式, 显式, 名义和鸭子类型
- == 与 ===, typeof 与 instanceof
- this, call, apply 和 bind
- 函数作用域, 块级作用域和词法作用域
- 闭包
- map, reduce, filter 等高阶函数
- 表达式和语句
- 变量提升
- Promise
- 立即执行函数, 模块化, 命名空间
- 递归
- 算法
- 数据结构
- 消息队列和事件循环
- setTimeout, setInterval 和 requestAnimationFrame
- 继承, 多态和代码复用
- 按位操作符, 类数组对象和类型化数组
- DOM 树和渲染过程
- new 与构造函数, instanceof 与实例
- 原型继承与原型链
- Object.create 和 Object.assign
- 工厂函数和类
- 设计模式
- Memoization
- 纯函数, 函数副作用和状态变化
- 耗性能操作和时间复杂度
- JavaScript 引擎
- 二进制, 十进制, 十六进制, 科学记数法
- 偏函数, 柯里化, Compose 和 Pipe
- 代码整洁之道
1. 调用堆栈
文章
📖 Call Stack — MDN📖 [译] JavaScript 如何工作:对引擎、运行时、调用堆栈的概述 —— 掘金📖 [译] 理解 JavaScript 中的执行上下文和执行栈 —— 掘金📖 这一次,彻底弄懂 JavaScript 执行机制 —— 掘金📖 解读 JavaScript 之引擎、运行时和堆栈调用 —— 开源中国📖 Tasks, microtasks, queues and schedules —— Jake Archibald📖 Tasks, microtasks, queues and schedules(译) —— 掘金
视频
📺 What is the event loop anyway? —— 腾讯视频(英文字幕)📺 Understanding The JavaScript Call Stack, Event Queue, Event Table, & Event Loop —— Bilibili📺 JS 中的变量提升、堆栈内存及闭包详解 —— Acfun📺 事件循环模型 —— PHP 中文网📺 Javascript: the Call Stack explained — Coding Blocks India📺 The JS Call Stack Explained In 9 Minutes — Colt Steele📺 JavaScript Execution Stack — Codecademy📺 What is the Call Stack? — Eric Traub📺 The Call Stack — Kevin Drumm📺 Understanding JavaScript Execution — Codesmith📺 Call Stack & Event Loop — movies com
2. 原始类型
文章
📖 原始数据 —— MDN📖 [译]JavaScript 是怎样编码数字的 —— SegmentFault📖 每一个 JavaScript 开发者应该了解的浮点知识 —— 颜海镜📖 JavaScript 标准参考教程(基本语法之数值) —— 阮一峰📖 The Secret Life of JavaScript Primitives —— Angus Croll
视频
📺 javascript 六种数据类型 —— 慕课网📺 javascript 视频教程(数据类型) —— PHP 中文网📺 JavaScript Reference vs Primitive Types — Academind📺 JavaScript Primitive Types — Simon Sez IT📺 Javascript Primitive and Reference Types — Baljeet Singh📺 Value Types and Reference Types in JavaScript — Programming with Mosh📺 JavaScript Primitive Data Types — Avelx📺 Everything you never wanted to know about JavaScript numbers — Bartek Szopka
3. 值类型和引用类型
文章
📖 ECMAScript 引用类型 —— W3school📖 js 中的值类型和引用类型的区别 —— 博客园📖 JavaScript 的值传递和引用传递 —— FunDebug📖 Primitive Types & Reference Types in JavaScript —— Bran van der Meer📖 JavaScript: Passing by Value or by Reference —— CSDN📖 js 值引用和值复制 —— SegmentFault📖 js- 引用和复制(传值和传址) —— CSDN
视频
📺 Javascript Pass by Value vs Pass by Reference — techsith📺 JavaScript Value vs Reference Types — Programming with Mosh
4. 隐式, 显式, 名义和鸭子类型
文章
📖 ECMAScript 类型转换 —— W3school📖 JavaScript 的怪癖 1:隐式类型转换 —— justjavac📖 JavaScript 运算符规则与隐式类型转换详解 —— 掘金📖 聊一聊 JS 中的隐式类型转换 —— SegmentFault📖 有趣的 JavaScript 隐式类型转换 —— 博客园📖 JavaScript 显式类型转换与隐式类型转换 —— CSDN📖 你不知道的 JavaScript(中卷)强制类型转换 —— 简书📖 你懂 JavaScript 嗎?#8 強制轉型 —— cythilya📖 动态类型语言和鸭子类型 —— 曾探📖 Nominal & Structural Typing —— flow📖 What exactly is Type Coercion in Javascript? —— stackoverflow📖 You Don't Know JS: Types & Grammar —— github
视频
5. == vs ===, typeof vs instanceof
文章
📖 JavaScript 中的相等性判断 —— MDN📖 js 中 == 和 === 的区别 —— 掘金📖 == vs === in Javascript —— CSDN📖 深入理解 javascript 之 typeof 和 instanceof —— CSDN📖 JavaScript 的 typeof 的用途 —— justjavac📖 一张图看懂 Function 和 Object 的关系及简述 instanceof 运算符 —— 掘金📖 浅谈 instanceof 和 typeof 的实现原理 —— 掘金📖 typeof 和 instanceOf 的区别
6. this, call, apply 和 bind
文章
📖 Javascript 的 this 用法 —— 阮一峰📖 学会 JS 的 this 这一篇就够了,根本不用记 —— 慕课网📖 [译] this(他喵的)到底是什么 — 理解 JavaScript 中的 this、call、apply 和 bind —— 掘金📖 this、apply、call、bind —— 掘金📖 使用 call、apply 和 bind 解决 js 中烦人的 this,事件绑定时的 this 和传参问题 —— 博客园📖 call、apply 和 bind 的原生实现 —— github
视频
📺 JavaScript 关于 this 关键字解释 —— 爱奇艺📺 JS 关于作用域闭包和 this 的综合面试题 —— 百度视频📺 js 面向对象闭包数组 12.函数中的 this —— 乐视视频📺 1.3.10-this 指向及 this 应用 —— 乐视视频📺 珠峰培训 JavaScript 开发课程:关于 this 关键字、闭包作用域 —— 网易云课堂
7. 函数作用域, 块级作用域和词法作用域
文章
📖 变量作用域与解构赋值 —— 廖雪峰📖 学习 Javascript 闭包(Closure) —— 阮一峰📖 JavaScript 中词法作用域、闭包与跳出闭包 —— SegmentFault📖 JavaScript 深入之词法作用域和动态作用域 —— 掘金📖 深入理解闭包之前置知识 → 作用域与词法作用域 —— 掘金📖 What is lexical scope? —— stackoverflow📖 You Don't Know JS: Scope & Closures —— Kyle Simpson
8. 闭包
文章
📖 闭包 —— MDN📖 ECMAScript 闭包(closure)—— w3school📖 学习 Javascript 闭包(Closure) —— 阮一峰📖 闭包 —— 廖雪峰📖 一次性搞懂 JavaScript 闭包 —— 简书📖 JavaScript 闭包 —— SegmentFault📖 js 匿名自执行函数中闭包的高级使用 —— 掘金📖 高效使用 JavaScript 闭包 —— 掘金📖 深入理解 JavaScript 原型与闭包 —— 王福朋
视频
9. map, reduce, filter 等高阶函数
文章
📖 高阶函数 —— 廖雪峰📖 ES5 中新增的 Array 方法详细说明 —— 张鑫旭📖 一张图看懂 JavaScript 中数组的迭代方法:forEach、map、filter、reduce、every、some —— 掘金📖 Transducing(上)-《JavaScript 轻量级函数式编程》 —— SegmentFault📖 JavaScript 函数式编程(三) —— @BuptStEve
10. 表达式和语句
文章
📖 js 表达式与语句 —— 博客园📖 JS 表达式和语句的区别 —— SegmentFault📖 JavaScript 中的表达式(expression)和语句/声明(statement) —— CSDN📖 重讀 Axel 的 Javascript 中的 Expression vs Statement 一文 —— SegmentFault📖 Expressions versus statements in JavaScript —— Dr. Axel
11. 变量提升
文章
📖 JavaScript 变量提升 —— 菜鸟教程📖 ES6 变量作用域与提升:变量的生命周期详解 —— 掘金📖 [翻译] JavaScript Scoping and Hoisting —— SegmentFault📖 JavaScript Scoping and Hoisting —— Ben Cherry
12. Promise
文章
📖 使用 promises —— MDN📖 Promise —— MDN📖 Promise — 廖雪峰📖 JavaScript Promise:去而复返 —— 司徒正美📖 (上面的原文)JavaScript Promise:简介 —— Web Fundamentals📖 1 分钟读完《10 分钟学会 JavaScript 的 Async/Await》 —— justjavac📖 JavaScript Promise 迷你书(中文版)📖 JavaScript 进阶之路——认识和使用 Promise,重构你的 Js 代码 —— 博客园
视频
13. 立即执行函数, 模块化, 命名空间
文章
📖 Javascript 模块化编程(一):模块的写法 —— 阮一峰📖 javascript 模块化编程-详解立即执行函数表达式 —— 简书📖 Javascript 的匿名函数与自执行 —— 掘金📖 前端模块化——技术选型 —— SegmentFault📖 谈谈 Js 前端模块化规范 —— SegmentFault📖 函数声明与函数表达式的区别 —— 伯乐在线
14. 递归
文章
📖 求解释 js 递归 —— SegmentFault📖 JavaScript 中的递归 —— 掘金📖 递归(上)-《JavaScript 轻量级函数式编程》 —— 掘金📖 递归(下)-《JavaScript 轻量级函数式编程》 —— 掘金📖 尾调用和尾递归 —— 掘金📖 几个经典递归问题用 js 实现 —— CSDN📖 递归函数的几个例子 —— CSDN
15. 算法
文章
📖 十大经典排序算法总结(JavaScript 描述) —— 掘金📖 在 JavaScript 中学习数据结构与算法 —— 掘金📖 JS 中可能用得到的全部的排序算法 —— 掘金📖 JS 家的排序算法 —— 简书📖 前端常见算法的 JS 实现 —— SegmentFault📖 前端面试中的常见的算法问题 ——蒲小花的博客
视频
16. 数据结构
文章
📖 来我们浅谈一下 js 的数据结构 —— 简书📖 JavaScript 中的算法与数据结构 —— 简书📖 学 JS 必看-JavaScript 数据结构深度剖析 —— 大道至简的博客📖 js 中基础数据结构数组去重问题 —— 掘金
视频
17. 消息队列和事件循环
文章
📖 并发模型与事件循环 —— MDN📖 JavaScript 运行机制详解:再谈 Event Loop —— 阮一峰📖 深入理解 JavaScript 事件循环 —— 博客园📖 深入浅出 Javascript 事件循环机制 —— 知乎📖 JS 事件循环机制(event loop)之宏任务、微任务 —— SegmentFault📖 JavaScript:彻底理解同步、异步和事件循环 —— SegmentFault📖 从浏览器多进程到 JS 单线程,JS 运行机制最全面的一次梳理 —— 掘金
18. setTimeout, setInterval 和 requestAnimationFrame
文章
📖 Window setTimeout() 方法 —— 菜鸟教程📖 Window setInterval() 方法 —— 菜鸟教程📖 关于 setTimeout —— 掘金📖 你不知道的 Javascript:有趣的 setTimeout —— 掘金📖 原来你是这样的 setTimeout —— 掘金📖 setTimeout() 和 setInterval() 本质区别在哪里? —— SegmentFault- book: window.requestAnimationFrame —— MDN
📖 requestAnimationFrame 知多少? —— 博客园📖 CSS3 动画那么强,requestAnimationFrame 还有毛线用? —— 张鑫旭📖 「JavaScript 定时器」setInterval、setTimeout 和 requestAnimationFrame 浅析 —— SegmentFault📖 翻译:setInterval 与 requestAnimationFrame 的时间间隔测试 —— SegmentFault📖 阿里前端面试题:requestAnimationFrame 实现类似 setInterval 的计时器 —— SegmentFault
视频
19. 继承, 多态和代码复用
文章
📖 JS 面向对象编程之:封装、继承、多态 —— 博客园📖 Javascript 的继承与多态 —— 简书📖 js:面向对象编程,带你认识封装、继承和多态 —— 掘金📖 JavaScript 中的“多继承” —— 掘金📖 代码复用模式 —— github📖 深入理解 JavaScript:代码复用模式(推荐篇) —— 汤姆大叔📖 深入理解 JavaScript:代码复用模式(避免篇) —— 汤姆大叔
20. 按位操作符, 类数组对象和类型化数组
文章
21. DOM 树和渲染过程
文章
📖 如何创建一个 DOM 树 —— MDN📖 HTML DOM 节点 —— W3school📖 DOM 概述 —— 阮一峰📖 《JavaScript 闯关记》之 DOM(上)—— 掘金📖 《JavaScript 闯关记》之 DOM(下)—— 掘金📖 掌握 DOM 操作 —— 掘金📖 操作 DOM —— 廖雪峰📖 原来 CSS 与 JS 是这样阻塞 DOM 解析和渲染的 —— 掘金
视频
22. new 与构造函数, instanceof 与实例
文章
📖 构造函数与 new 命令 —— 阮一峰📖 Javascript 面向对象编程(二):构造函数的继承 —— 阮一峰📖 完整原型链详细图解(构造函数、原型、实例化对象) —— CSDN📖 JavaScript 中构造函数与 new 操作符的实例详解 —— PHP 中文网📖 构造函数、实例、原型、原型链之间的关系 —— CSDN📖 深入理解 JS—instanceof 和原型链 —— CSDN📖 前端基础进阶(九):详解面向对象、构造函数、原型与原型链 —— 简书📖 js 用 new 实例化对象与直接调用的 this 的区别 —— 简书📖 JavaScript 并非所有的东西都是对象 —— justjavac📖 JavaScript instanceof 运算符深入剖析 —— IBM
视频
23. 原型继承与原型链
文章
📖 继承与原型链 —— MDN📖 构造函数、原型与原型链 —— github📖 原型及原型链 —— github(1269 Star)📖 理清 javascript 中的面向对象(一) 原型继承 —— SegmentFault📖 JavaScript:继承和原型链(译) —— justjavac📖 三张图搞懂 JavaScript 的原型对象与原型链 —— 博客园📖 一张图让你搞懂 JavaScript 的继承与原型链 —— CSDN📖 JS 高级--原型链(一看就懂,但 18 岁以下请绕道) —— CSDN📖 原型继承 —— 廖雪峰📖 JS 原型链与继承别再被问倒了 —— 掘金📖 征服 JavaScript 面试系列:类继承和原型继承的区别 —— 掘金📖 JavaScript 深入之从原型到原型链 —— 冴羽📖 深入理解 JavaScript 原型与闭包 —— 王福朋
视频
24. Object.create 和 Object.assign
文章
📖 Object.create —— MDN📖 Object.assign —— MDN📖 Object.create vs Object.assign —— 慕课网手记📖 JS 中的 Object.assign()、Object.create()、Object.defineProperty() —— CSDN📖 es6 中 object.create()和 object.assign() —— 风信子博客📖 Object-Assign-Deep —— github
25. 工厂函数和类
文章
📖 类 —— MDN📖 类和实例 —— 廖雪峰📖 Javascript 定义类(class)的三种方法 —— 阮一峰📖 【译】ES6 的工厂函数 —— 掘金📖 JavaScript 创建对象之单例、工厂、构造函数模式 —— 掘金
26. 设计模式
文章
📖 JavaScript 设计模式 —— 掘金📖 学用 JavaScript 设计模式 —— 极客学院📖 [面试专题]JS 设计模式 —— SegmentFault📖 JavaScript Patterns 中译本 —— github
视频
27. Memoization
文章
📖 JavaScript Memoization —— 司徒正美📖 memoization 提升递归效率 —— 博客园📖 如何提升 JavaScript 的递归效率 —— 51CTO📖 JavaScript 高级技巧 Memoization —— SegmentFaut
28. 纯函数, 函数副作用和状态变化
文章
📖 纯函数(Pure Function) —— React.js 小书📖 JavaScript Functional Programming:纯函数 —— 宁皓网📖 js 函数的副作用分析 —— 脚本之家📖 如何使用纯函数式 JavaScript 处理脏副作用 —— 掘金📖 原生 JavaScript 实现 state 状态管理系统 —— 博客园📖 JavaScript 函数式编程 —— @BuptStEve
29. 耗性能操作和时间复杂度
文章
📖 时间复杂度 O(log n) 意味着什么? —— 掘金📖 算法的时间复杂度和空间复杂度 —— 掘金📖 算法(一)时间复杂度 —— 掘金📖 Big O Search Algorithms in JavaScript —— Bradley Braithwaite📖 Time Complexity Analysis in JavaScript — Jennifer Bland
30. JavaScript 引擎
文章
📖 javascript 引擎 —— 百度百科📖 V8(JavaScript 引擎) —— 百度百科📖 图解搞懂 JavaScript 引擎 Event Loop —— 掘金3📖 V8 JavaScript 引擎:高性能的 ES2015+ —— justjavac📖 10 分钟理解 JS 引擎的执行机制 —— SegmentFaut📖 V8 javascript 引擎 —— 博客园
31. 二进制, 十六进制, 十进制, 科学记数法
文章
视频
32. 偏函数, 柯里化, Compose 和 Pipe
文章
📖 Javascript 函数式编程之偏函数 —— CSDN📖 JavaScript 专题之偏函数 —— SegmentFault📖 柯里化和偏函数有什么区别? —— SegmentFault📖 Javascript 偏函数与柯里化 —— CSDN📖 柯里化(curry) —— JS 函数式编程指南📖 代码组合(compose) —— JS 函数式编程指南📖 关于 javascript 函数式编程中 compose 的实现 —— SegmentFault📖 实现 compose 的五种思路 —— SegmentFault📖 JavaScript 函数式编程之函数组合函数 compose 和 pipe 的实现 —— SegmentFault📖 JavaScript 轻量级函数式编程-第 4 章:组合函数 ——掘金📖 JavaScript 函数式编程(二) —— @BuptStEve
33. 代码整洁之道
文章
📖 [译] JavaScript 代码整洁之道 —— 边城📖 Javascript 编程风格 —— 阮一峰📖 重构 - 代码整洁之道 —— 掘金📖 让你的代码更简短,更整洁,更易读的 ES6 小技巧 —— 掘金📖 Web 前端:11 个让你代码整洁的原则 —— 伯乐在线📖 Clean Code concepts adapted for JavaScript —— ryanmcdermott
No comments:
Post a Comment