Maison > Questions et réponses > le corps du texte
`alert(sum(10,10));
var sum=function(num1,num2){
return num1+num2;
};`
Pourquoi l'erreur est-elle signalée ? N'y a-t-il pas de promotion variable ?
phpcn_u15822017-07-05 10:57:27
Lorsque nous écrivons du code js, nous avons deux manières d'écrire, l'une est l'expression de fonction et l'autre est la déclaration de fonction.
Ce sur quoi nous devons nous concentrer est :
Seuls les formulaires de déclaration de fonction peuvent être promus.
1. Formulaire de déclaration de fonction [Succès]
function myTest(){
foo();
function foo(){
alert("我来自 foo");
}
}
myTest();
2. Méthode d'expression de fonction [Échec]
function myTest(){
foo();
var foo =function foo(){ // 看这里
alert("我来自 foo");
}
}
myTest();
Lisez mon article : http://www.jianshu.com/p/85a2...
扔个三星炸死你2017-07-05 10:57:27
Les expressions de fonction ne sont pas hissées.
Lisez à nouveau « Programmation avancée Javascript ».
phpcn_u15822017-07-05 10:57:27
La déclaration et l'expression sont différentes. Si vous déclarez, non seulement la définition sera faite à l'avance, mais l'affectation sera également faite à l'avance, mais pas l'expression.
a();
function a(){}; //等同于
var a = function(){};
a();
///////对于表达式有
a();
var a = function(){}; //等同于
var a;
a();
a = function(){}; //简单来讲就是表达式的赋值必须要等程序运行到相关行的时候才会进行
ringa_lee2017-07-05 10:57:27
Comme ci-dessus, votre méthode de création de fonction est sous forme littérale de fonction, remplacez-la par
alert(sum(10,10));
function sum(num1,num2){
return num1+num2;
}
C'est ça