The call stack:
Array with two methods:
first in last out.
peak() //looks at the first one.
first in, first out.
runs by adding them to the call stack
basically an array, with two special methods:
Hoisting variables is done to make sure everything is declared before adding to the call stack.
this[this.length++] = value //increments after evaluation
this[++this.length} = value //increments before evaluation