π‘ Javascript Battalion π‘
Module 1 Basics the foundation ποΈ
- β
var
,let
andconst
π - β
TDZ
Temporal Dead Zone π - β
Is
var
Dead? What should I use? π - β use strict π
- β
==
vs===
operator π - β
!!
double negation operator π - β List of Falsy values
- β Multi threading and Javascript
Module 2 Object
- β
this
keyword - β Details about object
- β
Optional chaining
?.
- β Object to primitive conversion
- β Object descriptors
- β Object Property getters and setters
- β protecting Objects
- β Objects Methods
- β
Nullish coalescing operator
??
- β typeof and instanceof
- β Host object and Native object
Module 3 Datatypes
- β Brief insight about data types [π]
- β Template Literals / String Interpolation [π]
- β Array and its methods [π]
- β String and its methods [π]
- β
Undefined
andNull
[π] - β Symbols
- β Date π
- β JSONP and JSON methods
Module 4 Function
- β Regular Function
- β Function Parameters
- β Arrow functions
- β
Immediate execution function
IIEF
- β Decorators and forwarding
- β Function binding and borrowing (bind, call and apply)
- β Anonymous and Named Functions
- β Pure Functions
- β Function Chaining
- β
Scheduling:
setTimeout
andsetInterval
- β High Order Function
- β Function Composition
- β Function Currying
Module 5 Prototypes, inheritance
- β Prototypal inheritance
- β Prototype in constructor function
- β Prototype in class
- β
Prototype methods, objects without
__proto__
Module 6 Classes
- β Class basic syntax
- β Class Fields
- β Private and protected properties and methods
- β Static properties and methods
- β Class inheritance, Extending Classes and using super()
- β Extending built-in classes
- β Mixins
Module 7 Destructuring
- β Destruction Assignment
- β Destructuring Objects
- β Destructuring Array
- β Destructuring Functions Arguments
- β Spread Operator
- β Rest Operator
Module 8 Error Handling
- β Error handling,
try..catch
- β Custom errors, extending Error
Module 9 Promises
- β callbacks
- β Promise
- β Promises chaining
- β Promise API
Module 10 Generators and Iterators
- β Generators
- β Generator functions
- β
Yield
keyword - β Generator Composition
- β Iterating Over a Generator
- β Generator using iterator
- β Closing Generators
- β async/await with Generators
Module 11 Modules
- β Modules, introduction
- β Core module features
- β Export and Import (as, *, default)
- β Build tools and its anatomy
- β Dynamic Imports
Module 12 Proxy
- β What are Proxies?
- β Another Proxy Example
- β Using Proxies to combat silly errors
- β Proxy and Reflect
- https://ponyfoo.com/articles/es6-proxies-in-depth
Module 13 Sets and WeakSets
- β Set
- β Methods of Set
- β Features of Set
- β WeakSet
Module 14 Map and Weak Map
- β Map
- β Methods of Map
- β Features of Map
- β WeakMap
- β Applications of WeakMap
Module 15 Async + Await Flow Control
- β Async-Await
- β Async-Await with other syntax
- β Error Handling with async and await
Module 16 Document Model
- β Browser environment, specs
- β DOM tree
- β Walking the DOM
- β Searching:
getElement*
,querySelector*
- β Node properties: type, tag and contents
- β Attributes and properties
Module 17 Playing with Events
- β Introduction to browser events
- β Bubbling and capturing
- β Event delegation
- β Event Looping
- β Event Propagation
- β event.preventDefault()
- β event.stopPropagation()
- β event.target and event.currenttarget
Module 18 UI Events
- β Mouse events
- β Moving the mouse: mouseover/out, mouseenter/leave
- β Drag'n'Drop with mouse events
Module 19 Forms, controls
- β Form properties and methods
- β Focusing: focus/blur
- β Events: change, input, cut, copy, paste
- β Forms: event and method submit
Module 20 Web components
- β From the orbital height
- β Custom elements
- β Shadow DOM
- β Template element
Module 21 Code Quality π
- β
Polyfill for
bind()
- β
Code Quality with
ESlint
- β What is the difference between
Lodash
andUnderscore
- β Shim Vs Polyfill
Module 22 Miscellaneous
- β Hoisting
- β Eval: run a code string
- β Mutation observer
- β Selection and Range
- β Execution Context
- β Memorization
- β How Garbage collection works
- β Atomics
- β Dataview
- β Typed Array
- β Underscore.js
- β Lexical Scope
- β Tress-Shaking