1- Just like a regular binding which is a variable to a value, in this case the function is our value binded.
2- var
is a global binding, yet let
is a local binding. When global bindings are created, you can refer to such bindings wherever you want. Local bindings declared inside a function can be referenced only in that function.
3- A pure function is a specific kind of value-producing function that not only has no side effects but also doesn’t rely on side effects from other code.