Difference between setTimeout with and without quotes and parentheses

I am learning JavaScript and I have learned recently about JavaScript timing events. When I learned about setTimeout at W3Schools, I noticed a strange figure which I didn’t run into before. They are using double quotes and then call the function.

Example:

setTimeout("alertMsg()", 3000);

I know that double and single quotes in JavaScript means a string.

Also I saw that I can do the same like that:

setTimeout(alertMsg, 3000);

With the parentheses it’s referring, without the parentheses it’s copied. When I am using the quotes and the parentheses it’s getting crazy.

I will be glad if someone can explain to me the difference between these three ways of using setTimeout:

With the parentheses:

setTimeout("alertMsg()", 3000);

Without the quotes and the parentheses:

setTimeout(alertMsg, 3000);

And the third is only using quotes:

setTimeout("alertMsg", 3000);

N.B.: A better source for setTimeout reference would be MDN.

6 Answers
6

Leave a Comment