1.) Synchronous functions are functions that run until they are completed and Asynchronous functions can be started but then set aside to be completed at a later time so the computer can get started on the next task/command.
2.) Call backhell is when in more complex operations have many different levels and sub-levels of nested functions to task.
3.) The technique used to solve callback hell are called promises or promise libraries like jQuery or to extend runtime with Node.js.