Preexplicación con palabra clave VAR
Primero veamos los resultados de este código de ejecución:
La copia del código es la siguiente:
alerta (n); // ventana emergente indefinida
var n = 10;
El resultado de la ventana emergente está indefinida, ¿por qué no 10? Veamos los siguientes resultados de ejecución del código:
La copia del código es la siguiente:
alerta (n);
n = 10;
El informe de operación es el siguiente:
¿Por qué un informe de error esta vez es que cuando el código se está ejecutando, la variable N no se declara; A través de la comparación de estas dos piezas de código, encontramos que hay una diferencia entre variables con palabras clave VAR y variables sin palabras clave VAR. Antes de ejecutar el código, el navegador parece haberles dado un valor inicial indefinido. Por lo tanto, antes de ejecutar el código, el proceso del motor del navegador escanean automáticamente las variables con palabras clave VAR y palabras clave de función y funciones y funciones definidas antes de que se ejecute el código se denomina preinterpretación.
Preexplicación con la palabra clave de función
Veamos los siguientes resultados de ejecución del código:
La copia del código es la siguiente:
fn (); // popt hola
función fn () {
alerta ('hola');
}
El resultado de la ejecución aparece hola, y FN se puede ejecutar normalmente. La razón es que FN se explica antes de ejecutar el código. FN se ha definido (definido) durante la explicación previa. Tenemos preguntas nuevamente, por qué el primer resultado de ejecución del código no aparece 10, sino que está indefinido y se introduce otro concepto nuevamente.
Declarar y definición en JavaScript
Por lo general, usamos la tecla VAR para declarar variables y usamos la palabra clave de función para definir funciones. Sin embargo, la palabra clave de función declara y define las funciones al mismo tiempo, mientras que VAR solo puede declarar variables y no tiene la función de definición.
Las siguientes son variables declaradas con la palabra clave var:
La copia del código es la siguiente:
var n; // declarar una variable n
var m = 10; // declara una variable M y asigna 10
Las siguientes son funciones definidas con la palabra clave de función:
La copia del código es la siguiente:
// Defina una función FN
función fn () {
alerta ('hola');
}
La diferencia entre la preexplicación de las palabras clave VAR y las palabras clave de función
De hecho, la diferencia entre los dos es que cuando se explica previamente con la palabra clave VAR, solo la parte de la declaración está preexplicada (porque no tiene la capacidad de definirse), mientras que cuando se explica previamente con la palabra clave de función, la declaración y la definición son preexplicables al mismo tiempo. Luego analizaremos el primer código nuevamente y lo analizaremos de la siguiente manera:
Preexplicación de poco convencionalidad (estafa)
¿Por qué se dice que no es convencional? Consulte el siguiente código (excepto Firefox):
La copia del código es la siguiente:
alerta (n);
fn ();
if (false) {
var n = 10;
función fn () {
alerta ('hola');
}
}
Undefined aparecerá en la primera línea de ejecución del código, y Hello aparecerá en la segunda línea de ejecución del código; Porque N y FN están preexplicables antes de la ejecución del código. Incluso si la condición se considera falsa, el motor del navegador persistente escaneará la variable N declarada con la palabra clave var y Fn con la definición de la clave de función.
*Pre-interpretación ignora la redeclaración, no la redefinición
Debido a que este lugar está relativamente enredado y no es fácil de entender, ha agregado un asterisco, consulte el siguiente código:
La copia del código es la siguiente:
alerta (n);
var n = 10;
var n = 9;
var n;
alerta (n);
¿Cuál es el resultado de ejecución de este código? Analicémoslo:
Continúe cargando el código, analice los siguientes resultados de ejecución:
La copia del código es la siguiente:
fn ();
función fn () {
alerta ('1');
}
fn ();
función fn () {
alerta ('2');
}
fn ();
El diagrama de análisis de código es el siguiente:
Análisis de preexplicación de funciones con definición de función
Resumir:
Esta publicación de blog utiliza una gran pieza de código y capturas de pantalla para ver la preinterpretación en JavaScript. Mirando varios libros, hay muy pocas descripciones de preinterpretaciones. De hecho, no hay muchos escenarios utilizados en el trabajo. Desafortunadamente, las previas interpretaciones son una toma imprescindible en las preguntas de la entrevista para las principales empresas. Cuando entré por primera vez en contacto con él, sentí que siempre no escribía código según el sentido común, pero a veces podría ejecutarse normalmente y no informaría un error. Por supuesto, esto también aumentó nuestra exploración de su misterio y también nos permitió comprender mejor cómo el motor del navegador explica y ejecuta nuestro código. Usaré algunos casos clásicos para analizarlo en las publicaciones de blog posteriores. ¡Gracias de nuevo por su apoyo!