That is due to what setTimeout does. setTimeout receives a callback function and a timeout in milliseconds, the execution of the callback function will be delayed by the given amount of the timeout. Meaning that show()
will be executed first and console.log("Execute later after 1 second");
after one second.
Long story short setTimeout delays the execution of a given function.
So everything works as it should.
CLICK HERE to find out more related problems solutions.