In you own words, explain the concepts of scope, hoisting, compartmentalization.
Scope: The section of code within which a variables value holds.
Hoisting: How the javascript interpreter rearranges your code before evaluation. By bringing variable declration and function definitions to the top.
Compartmentalization: Taking advantage of scope to minimize pollution of the global environment.