Deklaracje funkcji wewnątrz instrukcji if / else?

W jaki sposób obsługiwane są deklaracje funkcji?

<code>var abc = '';
if(1 === 0){
    function a(){
        abc = 7;
    }
}else if('a' === 'a'){
    function a(){
        abc = 19;
    }
}else if('foo' === 'bar'){
    function a(){
        abc = 'foo';
    }
} 
a();
document.write(abc); //writes "foo" even though 'foo' !== 'bar'
</code>

Ten przykład tworzy różne wyjścia w Chrome i Firefox. Wyjścia Chromefoo podczas wyjścia FF19.

questionAnswers(3)

yourAnswerToTheQuestion