a();
function a(){
alert('...');
}
//函数的声明会优先读取,无论函数的执行语句放在声明前面还是后面都会正常执行
表达式方法定义函数
var a = function(){
alert('...');
}
a();
//函数的定义不会优先加载,函数的执行语句必须放在定义的后面,否则会报错。
以上两种方法结合起来(会统一按照第二种方法处理)
var b = function a(){
alert('x'x'x');
}
//直接执行函数a
a();
结果会报错,不能识别a
//执行函数b
b();
正常执行,打印出xxx
//这种定义方式相当于把匿名函数赋值给b
函数的赋值相关问题
//声明一个函数
function a(){
var i=1;
return i;
}
//打印出函数名
alert(a); 会把整个函数的代码打印出来
//打印出函数名(带括号)
alert(a()); 会打印出函数返回值,1
//直接赋值函数名
var b = a; 会把整个函数赋值过去
//赋值函数名(带括号)
var b = a(); 赋值的是函数的返回值,1
//如果这样赋值
var b = function a(){
var i=1;
return i;
}
同 var b = a 赋值方法类似