函数声明:
function a() {}
函数表达式:
var a = function () {}
代码示例:
a(); // 1,函数声明提升 function a(){ console.log(1); } a(); // 1 var a = function(){ console.log(2); } a(); // 2,函数表达式不会提升,覆盖函数声明
a(); // 1,函数声明提升 var a = function(){ console.log(2); } a(); // 2,函数表达式覆盖函数声明 function a(){ console.log(1); } a(); // 2,函数声明提升后先于函数表达式声明,因此函数表达式会覆盖函数声明
函数立即执行
(function(a){ console.log(a); //使用()运算符 })(1); (function(a){ console.log(a); //使用()运算符 }(1)); !function(a){ console.log(a); //使用!运算符 }(1); +function(a){ console.log(a); //使用+运算符 }(1); -function(a){ console.log(a); //使用-运算符 }(1); var fn=function(a){ console.log(a); //使用=运算符,函数表达式立即执行 }(1)
()、!、+、-、=等运算符,都将函数声明转换成函数表达式