1. What is an expression?
A fragment of code that produces a value, no matter how simple in its build. Simply declaring a value, with no further interaction with that value, is seen as an expression.
2. What is a binding?
To put it simply, a binding is a way to store a value for future use. It uses the keyword let to announce it, which is followed by the name of the binding and a value - although the value doesnât necessarily need to be declared at this point.
3. What is an environment?
The environment is the collection of all the bindings in use at a given time, as well as their values. The environment is never empty, as there are bindings loaded by default which are needed by default or in order to interact with the used system.
4. What is a function?
A function is a piece of program wrapped in a value. Iâm guessing that it can also be seen as the inverse - a value wrapping a piece of code. We can use that value to easily call that piece of code. A function can also be given values, which are called arguments.
5. Give an example of a function.
The best example of a function is console.log, as this is used a lot both in the book and tutorials, but more importantly in the console. Interestingly, the console part refers to a function, while the log part is a way to refer to that specific property of the console function.
6. What is a side effect?
A side effect is a type of a function result which either changes the system in some way or has a tangible interaction inside the environment (like displaying a dialog box). The other type of function result is a value, which does not produce a tangible result inside the environment.
7. Give an example of a function that produces a side effect and another function that produces a value.
The prompt function has a side effect type of result. The Math.max and Math.min functions have a value type of result. I find it a bit unclear if the console.log function is a side effect type, as it does produce a tangible effect inside the console. Maybe someone can clarify this 
8. What is control flow?
Control flow is the order in which the code is executed. By default this is from top to bottom in sequential order.
9. What is conditional execution?
Building on control flow, conditional execution is a way to control the execution of the code based on given conditions. By default this is a straight flow from top to bottom. With conditional execution however, code will only be executed if the given conditions are met.
10. What kind of keyword do you need to use to invoke conditional execution?
The main keyword needed here is if, which will follow or not follow up a path based on a Boolean representation of the given argument value. However, if is closely intertwined with the else keyword, which offers the alternative path, in case the Boolean value from the if argument is false.