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.

Learning JavaScript Google Drive.

Written on March 23, 2017