In JS, why can a function’s parentheses be skipped, if the first argument is an fstring? [duplicate]

The title says it.

Here’s what I mean:

console.log`insert text here`

This is valid JS, which I found in a solution to a CodeWars kata, in the shape of string.split`` and array.join``.

After some playing around in node.js, this is what I found:

> console.log`insert text here`
[ 'insert text here' ]

> console.log(`insert text here`)
insert text here

> console.log([`insert text here`])
[ 'insert text here' ]

> console.log`one`,`two`
[ 'one' ]
'two'

> console.log`one`,'two'
[ 'one' ]
'two'

> console.log`one`,'two',3
[ 'one' ]
3

> console.log'one'
             ^^^^^
Uncaught SyntaxError: Unexpected string

Turns out, that it actually logs an array, containing only the string.

How does this even work, what is causing this behaviour, and why is an error not thrown, only if it’s an fstring?