Well, the following code is giving me unexpected result.
a = setTimeout(function() { alert('fuck'); },9000);
b = setTimeout(function() { console.log(a); },3000);
Here I expect that after 3 seconds, the then-value of a will be printed (a should be changing its value right from page-load). However, on running it, some value (even that is not constant, sometimes 84, sometimes 15, sometimes 9) is immediately printed, followed by another after 3 seconds (this one is always one less than the first one). Now the non-constancy of the values is anomaly enough, how can a number be printed immediately after page-load? The console.log function is included within a function reference, so no way can it self-execute immediately.