It's no surprise that this one pops up often in web developer interview questions. Most websites rely on HTTP calls to fetch the data from a server. It takes time for a function to fetch data from an API over HTTP.   In synchronous programming, the browser runs the script one line at a time, in order, and waits for the instruction to be completed before moving to the next line. The problem with synchronous programming is that the program becomes completely unresponsive while a function is running.   On the other hand, asynchronous programming was devised, which enables your script to start a potentially long-running task, but instead of waiting for the task to be finished, the browser can be responsive to other events while the task is running simultaneously. As soon as the task is finished, the script presents the result. This allows users to continue using the application while processes are running in the background, thus enhancing the user experience.