Learning JavaScript
Another Guide to Understanding JavaScript!
I have compiled and organized the notes that I jotted down on my journey to understanding JavaScript.
I think this guide is a lot different than most guides/books because it attempts to explain JavaScript within a generalized model of a compiler and runtime environment, stepping you through what happens to your code when you hit “GO”.
It describes:
- How code will be parsed by the compiler.
- How data items will be stored and accessed.
- How data items will be processed by the runtime.
It illustrates how JavaScript code pattern/structures manipulate your data, which should lead to a better understanding of:
- Why a particular concept is useful in your program.
- Why a certain code pattern is used to implement the concept in your program.
The guide has 17 separate sections, with each section consisting of several pages of text, code samples and diagrams. Here is a quick outline of the topics covered:
Overview
Introduction
Describing the JavaScript language and outlining the important concepts.
Part 0. Describing a JavaScript run time model
Creating Environments
-
Part A. Writing Code - the Basics
Variables and Assigning Value Types
….Primitives Values
….Objects Values
……..The Object Object Value Type
……..The Function Object Value Type
Lexical Environments and Scope
Execution Contexts
Methods
//Constructors - covered in Writing Code - Environments
//Closure - covered in Writing Code - Environments -
Part B. Executing Code
Hoisting
Storing, Copying, Comparing and Passing Different Value Types/Variables
The Scope Chain -
Part C. Writing Code - Environments and Managing Value Types/Variables
Understanding the “this” keyword
Understanding Constructors (classes)
Managing memory usage
Managing variable assignment
Understanding Closure
….A consequence of JavaScript’s Lexical Scoping mechanism
….Enables functions as “first class” objects to manage:
……..the visibility of variables upon function invocation and
……..the timing of function invocation
If you are interested in reading a bit or all of the guide, just click the below link to my google drive.