84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
var add1 = function(a,b){ return a+b; } function add2(a,b){ return a+b; }
如图,上面两个函数的声明方式有什么区别吗?
用函数语句创建的函数add2,函数名称和函数体均被提前,在声明它之前就使用它。但是使用var表达式定义函数add1,只有变量声明提前了,变量初始化代码仍然在原来的位置,没法提前执行。运行结果如下:
console.log(add2(1,1)); //输出2 function add2(a,b){ return a+b; } console.log(add1(1,1)); //报错:add1 is not a function var add1 = function(a,b){ return a+b; }
说一个不容易注意的区别吧递归的时候
function bar(){ ...... }
在函数体内可以用bar调用到自己
var foo = function(a,b){ ...... }
foo则不行
声明函数具有函数提升效果,可以在声明函数的代码前执行函数
用函数语句创建的函数add2,函数名称和函数体均被提前,在声明它之前就使用它。
但是使用var表达式定义函数add1,只有变量声明提前了,变量初始化代码仍然在原来的位置,没法提前执行。
运行结果如下:
说一个不容易注意的区别吧
递归的时候
在函数体内可以用bar调用到自己
foo则不行
声明函数具有函数提升效果,可以在声明函数的代码前执行函数