Tach!
Soweit ich weiss, kann man z.B. setTimeout für die aufgerufene Funktion keine Variablen mitgeben, die müssen also schon mal global sein.
Da weißt du nicht ganz richtig: MDN zu setTimeout(). Allerdings ist die erste Form nicht in älteren IEs verfügbar. Aber auch dann gibt es keinen Zwang, globale Variablen zu verwenden.
Oder gibt es "regionale" Variablen, die nur in einer .js Datei gelten?
Scope, nicht Datei, ist das richtige Stichwort, beispielsweise IIFE. Aber auch jede "normale" Funktion bildet einen Scope. Und sich darin neben dem setTimeout() auch die Callback-Fuktion befindet, so hat man darin Zugriff auf alle Variablen in diesem Scope.
dedlfix.