Pré-explicação com palavra-chave VAR
Vamos primeiro olhar para os resultados desta execução de código:
A cópia do código é a seguinte:
alerta (n); // pop-up indefinido
var n = 10;
O resultado do pop-up é indefinido, por que não 10? Vejamos os seguintes resultados de execução de código:
A cópia do código é a seguinte:
alerta (n);
n = 10;
O relatório de operação é o seguinte:
Por que um relatório de erro desta vez é que, quando o código está em execução, a variável n não é declarada; Através da comparação dessas duas peças de código, descobrimos que há uma diferença entre variáveis com palavras -chave e variáveis sem palavras -chave VAR. Antes da execução do código, o navegador parece ter lhes dado um valor inicial indefinido. Portanto, antes que o código seja executado, o processo do mecanismo do navegador digitalizando automaticamente as variáveis com palavras-chave var e as palavras-chave e funções definidas antes que o código seja executado seja chamado de pré-interpretação.
Pré-explicação com palavra-chave da função
Vamos ver os seguintes resultados de execução de código:
A cópia do código é a seguinte:
fn (); // Popt Hello
função fn () {
alerta ('olá');
}
O resultado da execução aparece olá, e o FN pode ser executado normalmente. O motivo é que o FN é pré-explicado antes da execução do código. FN foi definido (definido) durante a pré-explicação. Temos dúvidas novamente, por que o primeiro resultado de execução de código não aparece 10, mas é indefinido e outro conceito é introduzido novamente.
Declarar e definir em javascript
Geralmente usamos a tecla VAR para declarar variáveis e usar a palavra -chave da função para definir funções. No entanto, a palavra -chave da função declara e define funções ao mesmo tempo, enquanto o VAR pode declarar apenas variáveis e não tem a função da definição.
A seguir, as variáveis declaradas com a palavra -chave VAR:
A cópia do código é a seguinte:
var n; // declara uma variável n
var m = 10; // declarar uma variável M e atribuir 10 a ele
Os seguintes são as funções definidas com a palavra -chave da função:
A cópia do código é a seguinte:
// define uma função fn
função fn () {
alerta ('olá');
}
A diferença entre pré-explicação das palavras-chave VAR e palavras-chave de função
De fato, a diferença entre os dois é que, quando pré-explicada com a palavra-chave VAR, apenas a parte da declaração é pré-explicada (porque não tem a capacidade de se definir), enquanto quando pré-explicada com a palavra-chave da função, a declaração e a definição são pré-explicadas ao mesmo tempo. Em seguida, analisaremos o primeiro código novamente e analisamos o seguinte:
Pré-explicação da não convencionalidade (golpe)
Por que isso não é convencional? Consulte o seguinte código (exceto o Firefox):
A cópia do código é a seguinte:
alerta (n);
fn ();
if (false) {
var n = 10;
função fn () {
alerta ('olá');
}
}
A indefinida aparecerá na primeira linha de execução de código, e o Hello aparecerá na segunda linha de execução de código; Porque N e FN são pré-explicados antes da execução do código. Mesmo que a condição seja considerada falsa, o mecanismo persistente do navegador digitalizará a variável N declarada com a palavra -chave VAR e FN com a definição da chave da função.
*A pré-interpretação ignora a redeclaração, não a redefinição
Como este lugar é relativamente emaranhado e não é fácil de entender, ele adicionou um asterisco, consulte o seguinte código:
A cópia do código é a seguinte:
alerta (n);
var n = 10;
var n = 9;
var n;
alerta (n);
Qual é o resultado da execução desse código? Vamos analisá -lo:
Continue a fazer upload do código, analise os seguintes resultados de execução:
A cópia do código é a seguinte:
fn ();
função fn () {
alerta ('1');
}
fn ();
função fn () {
alerta ('2');
}
fn ();
O diagrama de análise de código é o seguinte:
Análise de pré-explicação da função com definição de função
Resumir:
Esta postagem do blog usa um grande pedaço de código e capturas de tela para exibir a pré-interpretação no JavaScript. Olhando para vários livros, existem muito poucas descrições de pré-interpretações. De fato, não há muitos cenários usados no trabalho. Infelizmente, as pré-interpretações são uma necessidade de perguntas de entrevistas para as principais empresas. Quando entrei em contato com ele, senti que ele sempre não escrevia código de acordo com o bom senso, mas às vezes podia funcionar normalmente e não relataria um erro. Obviamente, isso também aumentou nossa exploração de seu mistério e também nos permitiu entender melhor como o mecanismo do navegador explica e executa nosso código. Vou usar alguns casos clássicos para analisá -lo nas postagens subsequentes do blog. Obrigado novamente pelo seu apoio!