Skip to content

The intention of this JavaScript road map is to share with you one of many path you can take to grok the language and specially to point you to the high quality information (which I won't be ever able to write in a better way) in the intent to save you from hitting misleading ( when not completely wrong ) documents outside in the wild. Hopefully…

License

Notifications You must be signed in to change notification settings

heyskanda/a-walk-in-javascript

 
 

Repository files navigation

A walk in JavaScript

Preface

A lot of information has been written about JavaScript and EcmaScript since both the language creation time and the standard definition time. The intention of this road map is to share with you one of many paths you can take to grok the language and specially to draw you to the highest quality information (which I won't be ever able to write in a better way) in the attempt to prevent you from coming across misleading (when not completely wrong) documents outside in the wild.

Hopefully your walk will be much easier than mine!

Table Of Contents



  • Objects explained
    • Objects, the big picture
    • Syntax
    • Object properties attributes (accessors, descriptors)
    • Prototype
    • Behavior Delegation
    • Exotic Objects
    • Object built-in methods
    • Standard built-in objects

  • Indexed and Keyed Collections
    • Collections family
    • The Array Object
    • Syntax
    • Array Built-in methods
    • Preliminary practice
    • Exercises

  • Control Structures
    • General definition
    • Branching
    • Grouping
    • Exception handling
    • Iteration
    • Arbitrary Jumps
    • The Iterable and the Iterator Protocol
    • Preliminary Practice
    • Exercises

  • Functions
    • General Definition
    • Function declaration (function statement)
    • Function expression
    • Function constructor
    • Constructor vs declaration vs expression
    • Properties of the Function object in the prototype chain
    • Arity & formal parameters
    • Formal parameters and the arguments thing
    • Functions as properties of an object
    • IIFE
    • Pure functions
    • Side Effects
  • Execution context
    • Types of Execution Context (executable code)
    • Execution Stack
    • How Execution Context is defined?
    • Articles and books used for this section
  • Scope
    • Part of a program
    • ECMAScript definition
    • General definitions
    • Examples
  • Hoisting
  • Closure
    • General definition
    • Examples
  • Can we Cheat Scope?
    • ev[a|i]l
    • with
  • Relative Concepts Readings
  • Preliminary practice
  • Exercises

  • this Keyword
    • Introduction
    • Resolving this
    • Explicitly binding this through prototype methods
      • Function.prototype.bind()
      • Function.prototype.apply()
      • Function.prototype.call()
  • Strict mode
    • What happens on strict mode?
    • Semantic Differences
  • Arrow Functions
  • Generators
  • Exercises

  • Classes
    • General definition
    • Syntax
      • class declaration statement
      • class expression
      • Class body and method definitions
    • ES6 Classes in depth
  • OOP vs Functional
    • General definitions
    • Some essential differences
    • Examples
  • Exercises

  • Asynchronous programming
    • Event Loop
    • Callback
    • Promises
    • Async/Await
    • Exercises

  • JavaScript, where does it live?
    • The ECMAScript Engine
    • What does the engine actually do?
      • Visual guide based on V8
    • How many of them are there?
    • Engines Differences
  • The ECMAScript runtime
    • Runtimes Differences
    • Similarities
  • Javascript and the web
    • HTML
    • CSS
  • TL;DR
  • Complementary readings

  • Quality and reliability
    • An introduction to the "reliability" and "quality" concepts
  • Unit / Integration / Functional testing
    • Definitions
    • Comparison
    • TDD
    • Testing frameworks for JavaScript
  • Debugging
    • Debugging tools available for JavaScript
      • Global console object
      • Node.js console
      • debugger statement
      • node.js debugger
      • Browser's developer tools
      • IDE interaction with a browser to debug
  • Transpilers
    • Babel
  • Task runners, bundlers, build systems
    • Webpack
    • Grunt
    • Gulp
    • Brunch
    • Yeoman
    • RollUp

  • Destructuring
    • Syntax
    • Examples
    • Readings
  • Advanced Function/code factorization
    • Currying
    • Partial application
    • First-class composition
    • Readings

About

The intention of this JavaScript road map is to share with you one of many path you can take to grok the language and specially to point you to the high quality information (which I won't be ever able to write in a better way) in the intent to save you from hitting misleading ( when not completely wrong ) documents outside in the wild. Hopefully…

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%