函数声明的几种方式
- 三种 : 函数声明(1),函数表达式(2~5),Function构造器(6)
function func1(a){}//函数声明
var func2=function(b){}//函数表达式
var func3=function func4(c){}//命名式函数表达式
var func5=(function(n1,n2){})();//立即执行的函数表达式
return function(){ };//作为返回值的函数表达式
var func6=new Function()//构造函数声明
函数声明与函数表达式的区别
- 函数声明会将那个函数提升到最前面(即使你写代码的时候在代码块最后才写这个函数),成为全局函数。函数声明要指定函数名,而函数表达式不用,可以用作匿名函数。
var a = 1;
function fn(){
console.log(a)//1 undefined
var a = 5
console.log(a)//2 5
a++
var a
fn3()//3 1
fn2()//4 6
console.log(a)//5 20
function fn2(){
console.log(a)
a = 20
}
}
function fn3(){
console.log(a)
a = 200
}
fn()
console.log(a) //6 200
var x = 10;
bar()
function bar(){
var x = 30;
(function (){
console.log(x)
})()
} //30
var x = 10;
bar()
function bar(){
var x = 30;
function foo(){
console.log(x)
}
foo();
} //30
var x = 10
bar()
function foo() {
console.log(x)
}
function bar(){
var x = 30
foo()
}//10
sayName('world');
sayAge(10);
function sayName(name){
console.log('hello ', name);
}
var sayAge = function(age){
console.log(age);
};
网友评论