Last time we discussed some of more common data types in JavaScript. Today we’ll continue with that discussion by focusing on objects and arrays. Data types like String, Number, Boolean are known as Primitive data types, while Objects are Structural data types. Don’t worry too much about learning what the differences are right now, just remember that primitive data types refer to a single piece of data like 33 or “Hello” while structural data types can hold many pieces of data and data types. Let’s jump in before I confuse you further:

Arrays [ ]

What happens when we want to group data…

Now that we’ve talked about variables, let’s talk about what types of data those variables can hold. First, lets talk about typeof. typeof is an operator — like +, -, or =. 2 + 2 returns 4. typeof returns the type of the value we ask it about. What does that mean? It’s a lot less confusing than it looks:

typeof 2;
// -> 'number'

For those of you in doubt, 2 is indeed a number. Thanks, typeof.

Open your console and try it out. We’re going to be using typeof throughout this lesson so get familiar with it now.

Last lesson we talked about why JavaScript is a good language to learn. Now we’re going to dive into JavaScript. To follow along, open this link in another window. I suggest that you minimize both pages so that each fits half the screen so that you don’t have to constantly jump back and forth.

Welcome to the Console

Every browser has a console that allows users to interact with the webpage. Though you can find a console in the developer tools of your browser, the link I provided will give us a uniform and clean slate on which to work. Try testing it out…


If you’ve ever been interested in learning JavaScript but didn’t know where to start or have read some lessons that didn’t make sense then welcome — his guide is for you. Here, I’ll start from the very beginning and go step-by-step until you’re the hacker you always wanted to be. I’m kidding. Please note: though I’m going to try to be as clear and simple as possible in my explanations, that doesn’t absolve you as a reader of your responsibility to memorize the vocabulary and concepts. I may repeat myself — I may not. Lastily, I’m going to focus on…

Closures are an important part of fully understanding Javascript. Unfortunately, I feel as if most explanations are not friendly to new people. So I am going to try to explain closures in simpler terms — while understanding there is a tradeoff between complexity and technical accuracy. If you find this useful, I invite you to further study closures and their usefulness using such resources as Mozilla’s MDN Web Docs.

1 — Understanding Scope

Scope is the area the compiler looks in when deciding the value of a variable. Any basic understanding of Javascript should also come with an understanding of scope. If you don’t…

When declaring a variable in Javascript, you have three options: let, var, const. Here we’ll talk about all three ways and how they handle in certain scenarios.


Previous to ES2015, Javascript only had two scopes; global and function. With ES2015 and its introduction of two new keywords, let and const, a new scope was introduced; the block scope.

Global Scope: any variables declared outside of functions are accessible from anywhere in the program.

Function Scope: variables declared within a function are only accessible with that function. …

For my final school project I was asked to build an app using React and Redux. Here’s the process I went through:

1 — Brainstorming ⚡️

Obviously, the first part of building an app is knowing what the app does and it’s purpose. The second part is making sure the proposed app meets the project requirements. At first I wanted to design an arcade style game, like Space Invaders, and I would make the outer-screen look like an old-school arcade cabinet. But then I saw my sister’s stock portfolio excel file, and decided to make something similar for both her and myself.

2 — General Outline 📂

Since I…

For a school project I was tasked with building a Single Page Application using Ruby on Rails as my backend. Here’s the process I went though:

1 — Brainstorm & General Outline

Several projects ago I had wanted to build a weightlifting tracker that you could use to…track your lifts. I switched early in the project though, because too many problems arose and I decided it would be better to start with something easier. The main issue I faced was data management; every exercise would have a name and date, and would be tied to multiple sets which each had their own reps and weight attribute…

For a project at Flatiron school, I was asked to build a Ruby on Rails app using RESTful routes. Here’s the process I went through:

1 — General Outline

My previous project involved creating a database to keep track of movies a user could create and edit. I decided to continue this project, with some changes from the previous:

  1. Only an admin would be able to create and edit Movie models. Regular users would only be able to add or remove movies in their collection. …

For a school project I was told to build a CRUD MVC Sinatra App that keeps track of something. Here’s the process I went through:

1 — Brainstorming

I decided I wanted to build a workout app that you could use to record your workouts which would consist of multiple exercises which in turn would contain multiple sets and reps. After building my database and models, I learned the hard way that this probably wouldn’t be worth the effort. There were a plethora of problems, but some consisted of:

A) keeping track of around 18 different inputs (1 workout > 3 exercises >…

Morgan P Stanley

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store