声明提前
在程序开始执行之前,js引擎会先将var声明的变量和function声明的函数提前到当前作用域的顶部,集中创建。赋值留在原地。
只提前变量名或者函数名,不提前赋值,等到执行此语句时才赋值。
用声明定义创建函数时,函数名相同会被覆盖
创建函数
1.用声明方式创建函数
function 函数名(形参列表){
函数体
return 返回值
}
2.使用赋值方式创建函数
var 函数名=function(形参1,形参2){
函数体;
return 返回值;
}
var fun=function fun(){console.log(1)}
console.log(fun());//1
var fun=function fun(){console.log(2)}
console.log(fun());//2
var fun=100;
console.log(fun);//100
console.log(fun());//fun is not a function
function fun(){console.log(1)}
console.log(fun());//2
function fun(){console.log(2)}
console.log(fun());//2
var fun=100;
console.log(fun);//100
console.log(fun());//fun is not a function