JS setTimeout function

JS setTimeout() | Set a Timer in JavaScript

After a given number of milliseconds, the setTimeout() method calls a function or evaluates an expression.

One second is equal to 1000 milliseconds (ms).

It’s important to note that the function only runs once. Use the setInterval() method if you need to repeat the process.

What is the syntax of the JS setTimeout() method?

The syntax is quite simple. It looks as follows.

setTimeout(function, milliseconds, param1, param2, ...)

Parameter Values explanation

functionThe function that will be executed and it is required.
millisecondsThis is time and it is optional.
The number of milliseconds to wait for, before executing the code.
If you omit it then 0 will be used as a milliseconds value.
param1, …The additional parameters are optional.
Note: The additional parameters are not supported in IE9 and earlier versions

The setTimeout() method allows you to run code after a specified period of time has passed. The method can be helpful as a way to set a timer to run JavaScript code at a certain interval.

The following code will print “Hello World” to the browser console after 3 seconds.

//Example of JS setTimeout() function

    console.log("Hello World");
}, 3000);

console.log('Time starts now.');
// Output: after 3 seconds it will print 'Hello World'

The setTimeout() method’s first parameter is a JavaScript function that you want to run.

When passing a function, you can either write it directly or refer to a named function, as shown below:

//Example JS setTimeout() named function
// Named Function
function Hello()
  console.log("Hello World");
setTimeout(Hello, 3000);

// Call function directly
  console.log("Hello World");
}, 3000);

After that, you can specify the millisecond’s parameter, which specifies how long JavaScript should wait before executing the code.

As you can see we specified 3000 in the above example.

Since one second is equivalent to one thousand milliseconds, you must specify 3000 as the second to wait for three seconds.

setTimeout() will execute the passed function immediately without any delay If you omit the second parameter.

//Example without specifying the time
//this method will call the function immediately
  console.log("Hello World");

Finally, you can use the setTimeout() method to transfer additional parameters that you can use within the feature, as shown below:

// Example, how to pass additional parameters
// passing name and age here
function person(name, age){
  console.log(`Hello, my name is ${name}`);
  console.log(`I am ${age} years old.`);
//person: name of the callback function
//3000: time in milliseconds
//'jhon', 20: additional parameter for name and age
setTimeout(person, 3000, "jhon", 20);

JS setTimeout() and ES6

In ES6 the syntax is simple and easy to remember. The working of this function is similar to those examples mentioned above.

For example, we can use the arrow function as follow:

//Example ES arrow function and JS setTimeout() function
setTimeout( () => {
console.log('Hello World');
}, 3000);

// If you want to define a function seperatly
funName = () => {
console.log('Hello World')
setTimeout(funName, 1000);

As you can see it is easy to use the arrow function with setTimeout() method.

Now we will explain how you can pass additional parameters to the arrow function while calling it from the setTimeout() method.

// Example passing additional parameters to the arrow function (ES6 syntax)

// passing name and age
funName = (name, age) => {
console.log(`My name is ${name}`);
console.log(`I am ${age} years old`);

setTimeout(funName, 1000, 'Jhon', 20);

//My name is Jhon
// I am 20 years old

How do reset time in JS setTimeout() method?

A timer set with the setTimeout() method is cleared with the clearTimeout() method.

The clearTimeout() method can be used to prevent the setTimeout() method from executing the operation.

The clearTimeout() method takes the ID value returned by setTimeout() as a parameter.


// Example clearTimeout() method
var funID;
function startFunction() {

   // set time
  funID = setTimeout(function(){
   alert("Hello World"); 
  }, 3000);

function stopFunction() {
   // clear time

The setTimeout() method in JavaScript is a built-in method that lets you set the time for executing a function.

You must pass the amount of time you need to wait in milliseconds, which means you must pass one thousand milliseconds to wait one second.

To stop a setTimeout() method from running, call the clearTimeout() method and transfer the ID value returned by the setTimeout() method.