🇯🇵 日本語 | 🇺🇸 English | 🇪🇸 Español | 🇵🇹 Português | 🇹🇭 ไทย | 🇨🇳 中文

How to Use JavaScript setTimeout【Beginner’s Complete Guide】

This is a basic JavaScript function used to execute a task after a delay.

⏰ Live Demo: Experience setTimeout

Click the button below, and a message will appear after 3 seconds.

Basic Usage (Partial Code)

The basic syntax of setTimeout is very simple. Just specify the function to execute and the delay time in milliseconds.

// Show an alert after 3000 milliseconds (i.e., 3 seconds)
setTimeout(() => {
  alert("3 seconds have passed!");
}, 3000);

Copy-and-Paste Working HTML Example

Save the following code as an HTML file and you can test it right away.

<!DOCTYPE html>
<html lang="en">
<head>
  <title>setTimeout Demo</title>
</head>
<body>

  <h1>setTimeout Test</h1>
  <p>A message will appear 5 seconds after the page loads.</p>

  <script>
    setTimeout(() => {
      // You can also manipulate elements on the page
      const messageDiv = document.createElement('div');
      messageDiv.textContent = '🎉 5 seconds have passed!';
      document.body.appendChild(messageDiv);
    }, 5000); // 5000 milliseconds = 5 seconds
  </script>

</body>
</html>

Advantages and Disadvantages

  • Advantages:
    • ✅ Very simple syntax, easy even for beginners.
    • ✅ Delaying tasks can prevent UI blocking and enhance user experience.
    • ✅ Useful for animations, feedback messages, and more.
  • Disadvantages:
    • ❌ Executes only once. (Use `setInterval` for repeated execution)
    • ❌ The exact delay time is not guaranteed. (It’s a minimum wait)
    • ❌ Deep nesting of functions can make the code hard to read (callback hell).

Practical Use Cases

setTimeout is not only for delaying code, but also useful in real-world development scenarios.

Common Use Cases

  • Temporarily display feedback messages after form submission.
  • Wait a bit after typing stops before showing suggestions.
  • Start animations a moment after the page finishes loading.
  • Split heavy tasks into smaller ones to keep UI responsive.

Frequently Asked Questions (Q&A)

Q: What happens if I specify 0 milliseconds?

A: It doesn’t execute immediately. It’s added to the task queue and runs as soon as current tasks are finished. This is often used to give the browser time to breathe in performance-sensitive code.

Q: What’s the difference between `setTimeout` and `setInterval`?

A: `setTimeout` runs the code once after the delay. `setInterval` repeats the code at regular intervals. Use `clearInterval` to stop repeated execution.

Q: Can I cancel the execution before it happens?

A: Yes, you can. Store the timer ID with `const timerId = setTimeout(...)`, and use `clearTimeout(timerId)` to cancel it before it executes.

Conclusion

setTimeout is a simple yet powerful function, and a great first step into asynchronous JavaScript. Whether it's adding small UX enhancements or fine-tuning performance, it's incredibly useful. Master the basics and apply it to real scenarios!