As a JavaScript developer, one major concept you will be exposed to is a seemingly subtle mechanism known as hoisting. As simple and easy as this may sound, it could lead to bugs, and errors, and might become quite confusing, especially for beginners...