setTimeout
can evaluate a string as javascript, if the value is not a function
it will then convert the value to a string, probably by using toString()
You can see if you do this
"" + ["console.log(1", "2)"]
or
["console.log(1", "2)"].toString();
you get
'console.log(1,2)'
Then it get's evaluated accordingly