js函数声明的两种方式:
1.function functionName(){
…
}//函数声明
- functionName=function(){
…
}//函数表达式
这两个方法之间的区别是重点!!!
第一个会在所有代码执行前被解析
第二个会在代码被执行时执行
如:
例子1
function functions(flag){
if(flag){
function getValue(){
return 'a';
}else{
function getValue(){
return 'b';
}
}
结果:b;
就是因为他们用的第一种方式声明函数,所以会在执行之前被解析,所以此段代码相当于
function functions(flag){
function getValue(){
return 'a';
}
function getValue(){
return 'b';
}
if(flag){
}else{
}
}
例子2
function functions(flag){
if(flag){
getValue=function(){return 'a';}
}else{
getValue=function(){return 'b';}
}
这样如果flag为true,返回a,
flag为false,返回b