Pré-explication avec Var Mots-clés
Examinons d'abord les résultats de cette exécution de code:
La copie de code est la suivante:
alerte (n); // pop-up non défini
var n = 10;
Le résultat de la pop-up n'est pas défini, pourquoi pas 10? Examinons les résultats d'exécution du code suivant:
La copie de code est la suivante:
alerte (n);
n = 10;
Le rapport d'opération est le suivant:
Pourquoi un rapport d'erreur cette fois est-il que lorsque le code est en cours d'exécution, la variable n n'est pas déclarée; Grâce à la comparaison de ces deux pièces de code, nous constatons qu'il existe une différence entre les variables avec les mots clés VAR et les variables sans mots clés VAR. Avant l'exécution du code, le navigateur semble leur avoir donné une valeur initiale non définie. Par conséquent, avant que le code ne soit exécuté, le processus du moteur du navigateur scanne automatiquement des variables avec des mots clés VAR et des mots clés de fonction et des fonctions et fonctions définies avant l'exécution du code est appelée pré-interprétation.
Pré-explication avec mot-clé fonction
Voyons les résultats de l'exécution du code suivant:
La copie de code est la suivante:
fn (); // popt bonjour
fonction fn () {
alert ('bonjour');
}
Le résultat de l'exécution apparaît bonjour et FN peut être exécuté normalement. La raison en est que FN est pré-expulsé avant l'exécution du code. FN a été défini (défini) pendant la pré-explication. Nous avons à nouveau des questions, pourquoi le premier résultat d'exécution de code n'apparaît pas 10, mais n'est pas défini, et un autre concept est à nouveau introduit.
Déclarer et définition dans JavaScript
Nous utilisons généralement la clé VAR pour déclarer les variables et utilisons le mot clé de la fonction pour définir les fonctions. Cependant, le mot clé de la fonction déclare et définit les fonctions en même temps, tandis que Var ne peut déclarer que des variables et n'a pas la fonction de définition.
Voici les variables déclarées avec le mot-clé VAR:
La copie de code est la suivante:
var n; // déclare une variable n
var m = 10; // Déclarer une variable m et y attribuer 10
Les fonctions suivantes sont définies avec le mot clé de la fonction:
La copie de code est la suivante:
// définir une fonction fn
fonction fn () {
alert ('bonjour');
}
La différence entre la pré-explication des mots clés VAR et des mots clés de la fonction
En fait, la différence entre les deux est que lorsqu'elle est pré-expliqué avec le mot clé VAR, seule la partie de déclaration est pré-expliqué (car elle n'a pas la capacité de se définir), tandis que lorsqu'elle est pré-expliqué avec le mot clé de la fonction, la déclaration et la définition sont pré-expliquées en même temps. Ensuite, nous analyserons à nouveau le premier code et l'analyserons comme suit:
Pré-explication de la non-conventionnalité (arnaque)
Pourquoi est-il dit non conventionnel? Veuillez consulter le code suivant (sauf Firefox):
La copie de code est la suivante:
alerte (n);
fn ();
if (false) {
var n = 10;
fonction fn () {
alert ('bonjour');
}
}
Undefined apparaîtra dans la première ligne d'exécution de code, et Hello apparaîtra dans la deuxième ligne d'exécution de code; Parce que N et FN sont pré-expliqués avant l'exécution du code. Même si la condition est jugée fausse, le moteur de navigateur persistant scannera la variable N déclarée avec le mot clé VAR et FN avec la définition de la clé de fonction.
* La pré-interprétation ignore la redéclations, pas la redéfinition
Parce que cet endroit est relativement emmêlé et pas facile à comprendre, il a ajouté un astérisque, veuillez consulter le code suivant:
La copie de code est la suivante:
alerte (n);
var n = 10;
var n = 9;
var n;
alerte (n);
Quel est le résultat d'exécution de ce code? Analysons-le:
Continuez à télécharger le code, veuillez analyser les résultats de l'exécution suivants:
La copie de code est la suivante:
fn ();
fonction fn () {
alerte ('1');
}
fn ();
fonction fn () {
alert ('2');
}
fn ();
Le diagramme d'analyse du code est le suivant:
Analyse de pré-explication de la fonction avec définition de la fonction
Résumer:
Ce billet de blog utilise un grand morceau de code et des captures d'écran pour apaiser la pré-interprétation en JavaScript. En regardant divers livres, il y a très peu de descriptions de pré-interprétations. En fait, il n'y a pas beaucoup de scénarios utilisés dans le travail. Malheureusement, les pré-interprétations sont un incontournable dans les questions d'entrevue pour les grandes entreprises. Lorsque je suis entré en contact avec pour la première fois, je sentais que cela n'avait toujours pas écrit de code selon le bon sens, mais parfois il pouvait fonctionner normalement et ne signalerait pas d'erreur. Bien sûr, cela a également augmenté notre exploration de son mystère et nous a également permis de mieux comprendre comment le moteur du navigateur explique et exécute notre code. J'utiliserai quelques cas classiques pour l'analyser dans les articles de blog suivants. Merci encore pour votre soutien!