Answers to non code related exerices:
#1. Var is reserved keyword so we can't name a variable after it. We get a SyntaxError.
#2. We init a string variable. Than call a self invoking a function and change the variable name.
The result is:
Original person was John Malkovich
New person Drew Barrymore
3. Once we add ';' behind the console.logs we get:
outer func: this.fruit = undefined
outer func: self.fruit = undefined
inner func: this.fruit = undefined
inner func: self.fruit = undefined
because of the arrow function --> 'this' is not scoped to the object, but to the global object and fruit is undefined
#10. We will get '5' because of hoisting. 'i' declared with var is a global variable and since the loop ends at 5, we get the last index --> 5.