1----普通函數聲明方式 ------->存在函數提升 會將函數提升到最上面 函數是一等公民 函數的提升會在變量的提升的上面。
1 function sum(){};調用:sum()
2---函數表達式聲明方式 ------> 將一個函數(匿名函數/命名函數)賦值給一個變量 不存在函數提升 變量會提升 函數體還是留在原來位置
1 var add=function(){};調用:add() //雖然命名式函數表達式有函數名,但是不能通過這個函數名來調用函數,還是只能通過被賦值的變量加上小括號才能調用
3----構造函數聲明方式
var add2=new Function();調用 :add2()