Diferencia entre argumentos en llamadas setInterval

¿Cuál es la diferencia entre estas llamadas setInterval y cuáles deben usarse?

setInterval("myFunction()",1000)
setInterval("myFunction",1000)
setInterval(myFunction(),1000)
setInterval(myFunction,1000)

Supongo que JS usa eval () en los primeros dos (cadenas) y llama a los dos últimos directamente.

Además, no entiendo la diferencia entre las llamadas con y sin paréntesis. ¿Los que tienen paréntesis lo llaman directamente y luego llaman periódicamente su valor de retorno?

Respuestas a la pregunta(1)

Su respuesta a la pregunta