Q. JavaScriptのasync/awaitはPromiseの糖衣構文か? A. 糖衣構文ではありません。 Q. なぜ? A. async function構文で作られた関数オブジェクトに対してFunction.prototype.toStringメソッドを呼び出すと、async functionで始まる文字列が得られます。これはPromiseだけでは不可能で、async function構文を用いないと不可能です。 async function foo() {} // "async function foo() {}" console.log(Function.prototype.toString.call(foo));