JavaScript Variable Scope and Hoisting Explained | Dark Hacker News