Bütschgi: Warum ist das so?

Beitrag lesen

Siehe z.B. </archiv/2008/9/t176493/#m1161369>

Also werden alle Variable Statements ausgeführt, wenn der Funktionskörper 'betreten' wird, auch wenn die Variable Statements in einem weiteren Block Statement stehen.
Finde ich nicht besonders logisch – scheint aber so zu sein.

Folgefrage:
Wie kann ich mir dann die Variablendeklaration sparen, wenn sie nicht benötigt wird?

Pseudocode:

  
function computeValue (val) {  
    if (resultCached){  
        return resultFromCache;  
    } else {  
        var foo = {}, bar = 'blablubb';  
        [...]  
    }  
}  

Wenn jetzt die Funktion computeValue() sehr oft ausgeführt wird, wäre es doch sparsamer, die Variablendeklaration nicht durchzuführen.