1. Variáveis
As variáveis ECMAScript são variáveis soltas. As chamadas variáveis soltas significam que o nome da variável pode conter qualquer tipo de dados. Cada variável é apenas um espaço reservado para salvar o valor.
Definição: var FirstDemo;
2. O escopo das variáveis
2.1 Conceito básico
Use var para definir variáveis: defina variáveis locais que definem o escopo da variável. Esse método de definição de variáveis também é uma declaração explícita.
Se você não entende isso, pode dar uma olhada no seguinte exemplo simples e grosseiro:
A cópia do código é a seguinte:
teste();
function test () {
var FirstDemo = "Hello"; // Definir variáveis locais
Alert (FirstDemo); // Olá
}
teste();
function test () {
var FirstDemo = "Hello"; // Defina a variável local FirstDemo
}
Alert (FirstDemo); // Relatar um erro, FirstDemo não é definido
A partir dos dois exemplos acima, se uma variável for definida usando VAR em uma função, a variável será destruída após a saída da função.
Omite VAR para definir variáveis: desde que a função que defina a variável for chamada uma vez, a variável pode ser acessada globalmente. Este método de definição de variáveis também é uma declaração implícita
A cópia do código é a seguinte:
<script type = "text/javascript">
teste();
alerta (FirstDemo); //olá
function test () {
FirstDemo = "Hello";
}
</script>
Dicas: A variável explicitamente declarada já está compilada no objeto de chamada na pré -compilação (por exemplo, var t = 1; var t = 1 quando pré -compilado; t = 1 quando interpretado;), diferentemente das variáveis declaradas implicitamente que são definidas como variáveis globais somente quando interpretadas.
Descobrir o escopo das variáveis pode nos ajudar a pensar em como declarar razoavelmente variáveis, o que não apenas reduz a sobrecarga desnecessária da memória, mas também evita muito o problema causado por definições repetidas de variáveis e substituição de variáveis definidas anteriormente.
2.2 Análise de escopo
A cópia do código é a seguinte:
<script type = "text/javascript">
Função Demofunction (s) {
document.writeln (s)
}
var i = 0; // Defina variável global
function test () {
Demofunction (i);
função innerfunction () {
var i = 1; // Defina variáveis locais
Demofunction (i);
}
innerFunction ();
Demofunction (i);
}
teste();
</script>
Resultado da saída: 0 1 0
A cópia do código é a seguinte:
<script type = "text/javascript">
Função Demofunction (s) {
document.writeln (s)
}
var i = 0;
function test () {
Demofunction (i);
função innerfunction () {
Demofunction (i);
var i = 1;
Demofunction (i);
}
innerFunction ();
Demofunction (i);
}
teste();
</script>
Resultado da saída:
A, 0 0 1 0
B, 0 indefinido 1 0
C, 0 erro I não está definido
Você pode adivinhar qual é o resultado, e o motivo será explicado em detalhes na mensagem.
O acima é tudo sobre este artigo. Simplificando, o escopo das variáveis em qualquer linguagem de programação é um detalhe muito crítico. O escopo das variáveis no JS é relativamente mais livre do que o de idiomas como Java e C. Uma grande característica é que as variáveis JS não têm escopo no nível do bloco, e as variáveis nas funções são válidas em toda a função.