A collection of articles looking at some of the fundamental concepts in JavaScript in depth. Aimed at developers with experience in one or more other languages who are new to JavaScript, or intermediate JS developers who are already comfortable with beginner level concepts.
Created as a note taking exercise to solidify my own learning, shared in case useful for others!
Click through the links in the Contents section below to view each article. To run code snippets (assuming you have Node installed) enter node
at the command line and copy and paste snippets to execute, or download the entire file and run by executing node [pathToFile]
.
E.g. node ./this.js
- dataTypes.js - covering primitive values vs objects, how they are stored in memory, 'boxing', and whether JavaScript employs pass-by-reference or pass-by-value.
- this.js - examining the different potential bindings of the 'this' keyword.
- prototypes.js - OOP, prototypal inheritance, constructor functions and ES6 class syntax.
- closures.js - examining the concept of closure and its possible uses including for data encapsulation and memoization.
- prototypes.js is almost entirely derived from this excellent video by Codesmith - JavaScript The Hard Parts: Object Oriented Programming
- closures.js is likewise heavily informed by the Codesmith 'Hard Parts' videos Closures, Scope, and Execution Context
, and Exploring Recursion in JavaScript.
JavaScript Scopes and Closures In-depth from the Java Brains YouTube channel was also helpful. - Introduction to JavaScript for Developers from Java Brains YouTube as well as Dan Abramov's eBook Just Javascript formed the basis of material for dataTypes.js.
- These two YouTube explainers from Kent C. Dodds - How does "this" work in JavaScript? & What is "this" in NodeJS?, plus MDN provided the basis for this.js.
- JavaScript Objects and Prototypes In-depth - Java Brains YouTube.
- JavaScript: Under The Hood - Traversy Media YouTube.
- Crockford on JavaScript - lengthy series on JS from one of the masters. Somewhat outdated but interesting for historical context.
- Introduction to Programming with JavaScript - eBook by Launch School - for a thorough beginner friendly-introduction to the language.