一、定义函数方式
函数声明:function foo(){ //函数体 函数声明的重要特征就是函数声明提升 执行代码前会先读取函数声明}
函数表达式:var foo= function(arg0,arg1){ //函数体 这种情况创建的函数叫匿名函数 }
二、定义和语句
function foo() {...} // 定义,Declaration定义只是让解释器知道其存在,但不会运行。
foo(); // 语句,Statement 解释器遇到语句是会运行
三、函数调用
/** 方法调用 **/
function foo(){alert("foo")};
foo();
/** 立即执行函数表达式(IIFE) **/
//传统匿名函数 执行一次就会被销毁
(function(){ alert("hello"); })() //true
(function(){ alert("hello"); }()) //true
//加了一元操作符(也可以用其他符号)让一个函数声明语句变成了一个表达式
//消除函数声明和函数表达式间歧义的方法可以被解析器正确识
!function(){ alert("hello"); }() //true