Function est le premier citoyen de JavaScript, il y a donc une promotion de fonction ici. L'implémentation finale du code ci-dessus a le même effet que ce qui suit
function a()
{
console.log(a);
};
var a = 1;
a();
Cela entraînera l'écrasement du nom de la fonction d'origine.
Tout d'abord, parlons de js. Lorsque vous voyez var a = 1, vous devez l'analyser en deux étapes. Tout d'abord, élever var a au sommet de la portée actuelle, puis l'analyser vers le bas jusqu'à ce que a = 1 et commencez à attribuer des valeurs.
C'est le problème des variables et des fonctions ayant le même nom. En termes simples, l'ordre d'analyse du moteur js est le suivant
1 Les déclarations de variables et de fonctions sont promues en haut de la portée actuelle → var a ↑ et `function a(. ) {
C'est parce que la déclaration de fonction sera anticipée
var a = 1;
function a()
{
console.log(a);
};
a();
1) La déclaration de fonction sera en haut 2) La déclaration de variable sera également en haut 3) La déclaration de fonction sera en haut que la déclaration de variable : (la fonction est au-dessus de la variable) 4) Les variables et les instructions d'affectation sont écrites ensemble. Une fois analysées par le moteur js, elles seront divisées en deux parties : la déclaration et l'affectation. La déclaration est placée en haut et l'affectation reste à la position d'origine. 5) Les variables déclarées ne seront pas déclarées à plusieurs reprises.
sera équivalent à ce qui suit
var a = function ()
{
console.log(a);
};
var a = 1;
a();
Beaucoup de gens ont mentionné qu'il s'agissait d'un problème de promotion variable, mais l'explication n'est pas tout à fait correcte. varL'amélioration se fait par parties et les fonctions sont améliorées dans leur ensemble. Pour information
Ça devrait donc ressembler à ceci :
var a;
function a ()
{
console.log(a);
};
a = 1;
a();
Function est le premier citoyen de JavaScript, il y a donc une promotion de fonction ici. L'implémentation finale du code ci-dessus a le même effet que ce qui suit
Cela entraînera l'écrasement du nom de la fonction d'origine.
L'identifiant est répété. Vous avez déclaré a comme variable
Tout d'abord, parlons de js. Lorsque vous voyez var a = 1, vous devez l'analyser en deux étapes. Tout d'abord, élever var a au sommet de la portée actuelle, puis l'analyser vers le bas jusqu'à ce que a = 1 et commencez à attribuer des valeurs.
C'est le problème des variables et des fonctions ayant le même nom. En termes simples, l'ordre d'analyse du moteur js est le suivant1 Les déclarations de variables et de fonctions sont promues en haut de la portée actuelle → var a ↑ et `function a(. )
}`{
2. Analysez ensuite le code restant `a=1;
a()`,
C'est parce que la déclaration de fonction sera anticipée
1) La déclaration de fonction sera en haut
sera équivalent à ce qui suit2) La déclaration de variable sera également en haut
3) La déclaration de fonction sera en haut que la déclaration de variable : (la fonction est au-dessus de la variable)
4) Les variables et les instructions d'affectation sont écrites ensemble. Une fois analysées par le moteur js, elles seront divisées en deux parties : la déclaration et l'affectation. La déclaration est placée en haut et l'affectation reste à la position d'origine. 5) Les variables déclarées ne seront pas déclarées à plusieurs reprises.
Beaucoup de gens ont mentionné qu'il s'agissait d'un problème de promotion variable, mais l'explication n'est pas tout à fait correcte.
var
L'amélioration se fait par parties et les fonctions sont améliorées dans leur ensemble. Pour informationÇa devrait donc ressembler à ceci :