Le nom de la fonction dans l'expression de la fonction est immuable et ne peut être qu'entre guillemets et ne peut pas être attribué. Si vous ajoutez 'use strict' vous pouvez observer l'erreur en mode strict.
@Le code rapide 10 de la touche lumineuse doit être suivi d'un point-virgule
Il n'y a pas de promotion de fonction ici. La promotion de fonction n'existe que dans le cas d'une "déclaration de fonction", pas dans le cas d'une "expression de fonction". Concernant la différence entre « déclaration de fonction » et « expression de fonction », de nombreux articles sur Internet l'expliquent très clairement. Vous pouvez rechercher et apprendre par vous-même.
Ce que dit le deuxième étage, c'est qu'il n'est pas possible de modifier le nom d'une fonction dans une fonction, par exemple :
(function a(){
a = 10; //这个表达式不会成功,函数a依旧是函数a,至于这里面的a = 10等同于被废弃了,也不会生成相应的全局变量
})();
Quant à savoir pourquoi la fonction a est générée au lieu de 20, le simple fait est que l'instruction est directement ignorée, ce qui équivaut à
var b = 10;
(function b(){
console.log(b);
})();
Supplément : On vient de me rappeler que les fonctions auto-exécutables sont également des expressions de fonction. Je m'excuse de m'avoir induit en erreur lorsque j'ai commencé à écrire la réponse.
var b = 10;
var b = (function(){
b = 10;
console.log(b); //输出:10
})();
console.log(b); //输出:undefined 。 b在自执行函数那里没有获取到返回值
Le nom de la fonction dans l'expression de la fonction est immuable et ne peut être qu'entre guillemets et ne peut pas être attribué. Si vous ajoutez
'use strict'
vous pouvez observer l'erreur en mode strict.@Le code rapide 10 de la touche lumineuse doit être suivi d'un point-virgule
Il n'y a pas de promotion de fonction ici. La promotion de fonction n'existe que dans le cas d'une "déclaration de fonction", pas dans le cas d'une "expression de fonction".
Concernant la différence entre « déclaration de fonction » et « expression de fonction », de nombreux articles sur Internet l'expliquent très clairement. Vous pouvez rechercher et apprendre par vous-même.
Ce que dit le deuxième étage, c'est qu'il n'est pas possible de modifier le nom d'une fonction dans une fonction, par exemple :
Quant à savoir pourquoi la fonction a est générée au lieu de 20, le simple fait est que l'instruction est directement ignorée, ce qui équivaut à
Supplément :
On vient de me rappeler que les fonctions auto-exécutables sont également des expressions de fonction. Je m'excuse de m'avoir induit en erreur lorsque j'ai commencé à écrire la réponse.