`alert(sum(10,10));
var sum=function(num1,num2){
return num1+num2;
};`
为什么报错,不是有变量提升吗
`alert(sum(10,10));
var sum=function(num1,num2){
return num1+num2;
};`
为什么报错,不是有变量提升吗
声明和表达式是不一样的,声明的话不光定义会提前,赋值也会提前赋好,而表达式不会,举个栗子:
a();
function a(){}; //等同于
var a = function(){};
a();
///////对于表达式有
a();
var a = function(){}; //等同于
var a;
a();
a = function(){}; //简单来讲就是表达式的赋值必须要等程序运行到相关行的时候才会进行
同楼上,你的函数创建方式是函数字面量形式,改成
alert(sum(10,10));
function sum(num1,num2){
return num1+num2;
}
就行了
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
在我们写js code 的时候,我们有2中写法,一种是函数表达式,另外一种是函数声明方式。
我们需要重点注意的是:
1、函数声明形式 【成功】
2、函数表达式方式【失败】
看我这篇: http://www.jianshu.com/p/85a2...