asyncと値の受け取りについてわかりません


JavaScriptのAsync、Awaitについて解説している記事で以下のようなサンプルコードを見かけました。

[Async/await](https://ja.javascript.info/async-await) の冒頭部分

>
[code]

>     async function f() {
>       return 1;
>     }
>  
>     f().then(alert); // 1
>  
[/code]

これが以下のコードであれば「1」が表示されることが理解できます。

[code]

    async function f() {
      return 1;
    }
    
    f().then(val => {
      alert(val);
    });
    
[/code]

しかしサンプルコードで

[code]

    f().then(alert);
    
[/code]

だけでも同じように「1」が表示される理由がわかりません。  
「1」を受け取っているように見えないのです。

これはAsyncの仕様が関係しているのでしょうか。  
それともalertの仕様に関係しているのでしょうか。

どなたかJavaScript初心者にご教示お願いいたします。




以下の MDN の記事に書いてありますが、

Promise.prototype.then()  
<https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Promise/then>

その alert は "Promise が成功したときに非同期に呼び出される関数 (Function) です。この関数は 1 つの引数、 履行値
を取ります" と言うことだからと思います。

