The async attribute is ignored if the tag has no src? Because defer is, but i cant fin information about async.
This attribute affects javascript fetching. If you have no src there is nothing to fetch.
Also you can do a simple test to check how it works. Spoiler: it doesn't do anything as expected.
<script>
console.log("sync 1")
console.log(document.getElementById('test') != null)
</script>
<script async>
console.log("async")
document.write('<div id="test"></div>')
</script>
<script>
console.log("sync 2")
console.log(document.getElementById('test') != null)
</script>