J'ai été libre récemment et j'ai accumulé quelques connaissances sur JavaScript. Par exemple, dans certaines questions d'entretien, les paramètres formels de la fonction et les variables ou fonctions déclarées à l'intérieur de la fonction ont le même nom. Pour ceux qui veulent savoir, continuez à lire.
function ab(x){ console.log(x); var x; console.log(x); }; ab(3);
Ce résultat se produit, mais lorsqu'une valeur est attribuée à la variable déclarée dans la fonction, le paramètre transmis sera remplacé.
function ab(x){ console.log(x); var x = 4; console.log(x); }; ab(3);
Le résultat de sortie est : .
Lorsque la fonction déclarée dans la fonction a le même nom que le paramètre formel :
function ab(x){ console.log(x); function x(){ console.log("我是函数") }; console.log(x); }; ab(3);
La sortie le résultat est :
Pourquoi cela se produit-il ? L'une des fonctionnalités de JS est le levage de la déclaration de fonction. Cela s'applique également aux fonctions déclarées dans la fonction. body will est promu à la première ligne de la fonction, donc lorsque ab est appelé, x n'est pas 3 dès qu'il est passé.
Mais la manière d'attribuer des fonctions anonymes à des variables n'a pas la fonctionnalité de promotion de la déclaration de fonction, elle est donc ajoutée après la déclaration. Changera x, comme indiqué ci-dessous :
Je suis là pour vous donner quelques conseils, n'hésitez pas à me signaler s'il y a quelque chose. trompeur ^^.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!