Vejamos primeiro um pedaço de código
function show () {alert (abc); } var abc = "DEFG"; mostrar();As pessoas que têm experiência em programação C ++ ou Java podem dizer: "Este programa está morto e a variável é definida após a função que faz referência à variável. O bug o destruirá". Se você o executar no navegador, o que acontecerá? Execute perfeitamente! Em seguida, vamos falar sobre o que está acontecendo - a diferença entre variáveis com VAR e sem a definição VAR.
1. Não var
Simplificando, não é seguro omitir VAR ao definir variáveis, mas é legal. No momento, não importa onde a variável seja definida, o intérprete atribuirá o escopo global variável.
2. Tenha var
Seguro e legal. O escopo de uma variável definida depende da localização do definido. Quanto ao que é o escopo, consulte o artigo "JavaScript Scope" neste blog.
Dessa forma, o problema no início pode ser resolvido. A definição de ABC na função é apenas o valor da indefinição. Nesse momento, o ABC tem um escopo global, e o exterior da função é apenas a atualização do valor do ABC.