A linguagem JavaScript tem dois escopos: global e local. Uma variável declarada fora de uma definição de função é uma variável global, e seu valor será acessível e modificável em todo o seu programa. Uma variável declarada dentro de uma definição de função é local.Ela é criada e destruída sempre que a função é executada e não pode ser acessada por qualquer código fora da função.O JavaScript não suporta escopo de bloco (no qual um conjunto de chaves {. . .} define um novo escopo), exceto em caso especial de variáveis com escopo em bloco.
FONTE: https://msdn.microsoft.com/pt-br/library/bzt2dkta%28v=vs.94%29.aspx?f=255&MSPPError=-2147217396