Explain async and await in JavaScript.

async functions return promises, allowing await to pause execution until a promise resolves, simplifying asynchronous code.

async function fetchData() {
  let response = await fetch("https://api.example.com");
  let data = await response.json();
  console.log(data);
}