函数声明式和函数表达式的区别

436 阅读1分钟

函数声明和函数表达式的区别

//函数声明式
function greeting(){
      console.log("hello world");  
}
​
//函数表达式
var greeting = function(){
    console.log("hello world"); 
}
  1. 函数声明式变量会声明提前 函数表达式变量不会声明提前

  2. 函数声明中的函数名是必需的,而函数表达式中的函数名则是可选的

  3. 函数表达式可以在定义的时候直接在表达式后面加()执行,而函数声明则不可以。

    function fun(){
       console.log('我是一个函数声明式')
    }();   //unexpected tokenvar foo = function (){
        console.log('我是一个函数表达式')
    }();   //我是一个函数表达式
    
  4. 自执行函数即使带有函数名,它里面的函数还是属于函数表达式。

    (function fun(){
         console.log('我是一个函数表达式')
         })()  //我是一个函数表达式
    

    因为函数只是整个自执行函数的一部分。