Passar variável local com o nome de uma variável global não é possível em J

foo = "foobar";
var bar = function(){
    var foo = foo || "";
    return foo;
}
bar();`

Este código fornece um resultado string vazio. Por que o JS não pode reatribuir uma variável local com o mesmo nome que uma variável global? Em outras linguagens de programação, o resultado esperado é obviamente "foobar", por que o JS se comporta dessa maneir

questionAnswers(2)

yourAnswerToTheQuestion