関数宣言はどのように処理されますか?
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'
この例では、Chrome と Firefox で異なる出力が生成されます。Chrome は出力foo
し、FF は出力します19
。