Todos os definidos fora do corpo da função são variáveis globais, e as definidas dentro do corpo da função são variáveis locais. A definição aqui refere -se à declaração por var.
O JavaScript possui um conceito global implícito, o que significa que qualquer variável que você não declarar se tornará uma propriedade de objeto global. Por exemplo:
A cópia do código é a seguinte:
function test () {
myname = "huming";
alerta (myname);
}
teste(); // "huming"
alerta (myname); // "huming"
Os dois resultados são os mesmos, indicando que o MyName é uma variável global.
Então, existe uma diferença entre variáveis globais implícitas e variáveis globais bem definidas? . Deve haver uma resposta, veja o seguinte exemplo:
A cópia do código é a seguinte:
// define três variáveis globais
var global_test1 = 1;
global_test2 = 2; // Livro didático negativo
(function () {
global_test3 = 3; // Livro didático negativo
} ());
// Tente excluir
excluir global_test1; // false
excluir global_test2; // verdadeiro
excluir global_test3; // verdadeiro
// Teste a exclusão
alerta (typeof global_test1); // "número"
alerta (typeof global_test2); // "indefinido"
alerta (typeof global_test3); // "indefinido"
A partir do exemplo acima, podemos ver que o Global_Test1 definido por VAR fora da função não pode ser excluído, enquanto Global_Test2 e Global_test3 não são definidos pelo VAR são excluídos (seja criado no corpo da função ou não).
Em resumo, as variáveis globais declaradas pelo VAR fora da função não podem ser excluídas, enquanto variáveis globais implícitas podem ser excluídas.
NOTA AQUI: O JavaScript tem um comportamento chamado "içar" (pendurar/parar de analisar/pré -pular).
Vamos usar um exemplo para ilustrar:
A cópia do código é a seguinte:
var myname = "huming"; // Declare variáveis globais
function test () {
alerta (myname);
var myname = "local_huming";
alerta (myname);
}
teste();
Você acha que o conteúdo do alerta é consistente duas vezes? ? Obviamente inconsistente, é necessário dizer essa consistência? . A saída real é: "indefinida", "local_huming".
O exemplo acima é equivalente a
A cópia do código é a seguinte:
var myname = "huming"; // Declare variáveis globais
function test () {
var myname;
alerta (maname); <br> myname = "local_huming";
alerta (myname); // "Local"
}
teste();
A primeira saída de alerta MyName não é a variável global que você pensa, mas a variável local dentro de um escopo (um corpo de função). Embora não tenha sido declarado, foi considerado uma declaração. Isso é o que é chamado de "elevação".
Isso deve ser entendido. Se você usar uma variável no corpo da função e redeclará -lo posteriormente, poderá ocorrer um erro.
Especificações de escrita:
A cópia do código é a seguinte:
function test () {
var a = 1,
b = 2,
C = A + B,
d = {},
e,
f;
// Corpo de função ...
}
Os benefícios são:
1. Todas as variáveis locais são definidas no início da função, que é conveniente para a pesquisa;
2. Deixe os erros lógicos serem usados antes que a variável seja definida.
Você entendeu a declaração variável de JavaScript? O conteúdo acima é muito detalhado e fácil de entender. O resumo final também é muito pertinente. Não perca.