84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
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则不行
声明函数具有函数提升效果,可以在声明函数的代码前执行函数