I have the following code

```
  setTimeout(function() {
    alert('Hello, Mr. Universe!');
  }, 2000)

```

This runs immediately, and outputs the alert after 2 seconds (at least) depending on the stack.
But I'm wondering why the following also behaves this way.

```
  let myGreeting = setTimeout(function() {
    alert('Hello, Mr. Universe!');
  }, 2000)

```

Isn't this just a function expression? Why does it run even without an invocation, i.e., myGreeting()?