1----普通函数声明方式 ------->存在函数提升 会将函数提升到最上面 函数是一等公民 函数的提升会在变量的提升的上面。
1 function sum(){};调用:sum()
2---函数表达式声明方式 ------> 将一个函数(匿名函数/命名函数)赋值给一个变量 不存在函数提升 变量会提升 函数体还是留在原来位置
1 var add=function(){};调用:add() //虽然命名式函数表达式有函数名,但是不能通过这个函数名来调用函数,还是只能通过被赋值的变量加上小括号才能调用
3----构造函数声明方式
var add2=new Function();调用 :add2()