JavaScript possui apenas escopo de função; Cada função possui uma corrente de escopo que atinge diretamente o objeto de janela.
A busca de variáveis é pesquisada de uma camada interna para a parte externa, e ela parará quando for encontrada.
Ao mesmo tempo, ele pode não apenas encontrar e usar, mas também alterar variáveis externas.
A cópia do código é a seguinte:
var color = "azul";
função chanGecolor () {
var outrocolor = "vermelho";
função swapcolors () {
var tempcolor = outrocolor;
outrocolor = cor;
cor = tempcolor;
}
swapcolors ();
}
ChanGecolor ();
console.log (cor); // variáveis externas "vermelhas" não podem apenas ser acessadas, mas também modificadas