Master functions, the building blocks of programs, and understand variable scope.
Understand the two primary ways to create functions and the concept of hoisting.
Learn the concise syntax of ES6 arrow functions and their lexical 'this' binding.
Create more flexible functions with default values and a variable number of arguments.
Understand how closures give functions persistent access to their outer scope.