Table of contents Concepts Compiler and Execution Phase Hoisting Scope Lexical Scope Function Scope Block Scope Prototype What is prototype? And why is it difficult to understand? Constructor function Classes This Closure Map, Filter and Reduce Call, Apply and Bind ES6 Var, Let, and Const Immutable data with const Block scoping Fixing the for loop Template Literals Interpolation Multiline strings Tags Destructuring Simple destructuring Nested destructuring Destructuring an Array Destructuring specific items in an Array Nested destructuring with Arrays Destructuring a mix of Arrays and Objects Setting default values Object Literals Prototype Method Shorthand Computed Property Names Parameters Arrow Functions Lexical scoping Function Generators My First Generator Generators with Bluebird Build your own generator library JavaScript Magic Debounce Piping React Lifecycle Methods Unexpected Side Effects React 16.3: How to handle side effects Parent & Child Communication Instance Methods Callback Functions Component vs. PureComponent Shallow Comparison Don't bind functions inside render Don't derive data in render Portals HOCs Intro to HOCs Recompose: Lifecycle Hooks Recompose: Apply state/methods Recompose: Dynamic Rendering Recompose: Formatting existing props Render Props Function as Child components Another simple use case for render Props Provider Context Simple Provider HOC Provider Using Recompose to Create a Provider Jest Setup Snapshot Testing Checking Props Event Handlers Styling Redux Actions