深入学习JavaScript(二)
函数表达式和函数声明 函数声明 function 函数名(参数){函数体} 函数表达式 function 函数名(可选)(参数){函数体} 示例: function foo(){} // 声明,因为它是程序的一部分 var bar = function foo(){}; // 表达式,因为它是赋值表达式的一部分 new function bar(){}; // 表达式,因为它是new表达式 (function(){ function bar(){} // 声明,因为它是函数体的一部分 })(); 另外一种不太常见的函数表达式 function foo(){}//函数声明 (function foo(){});//函数表达式,因为在外面加上了一个分组操作符,分组操作符有一个作用是将括号中的函数声明转化成为函数表达式 //验证分组操作符内是否一定要是函数声明 try{ (var x=5); //var x=5是一个语句,不是函数声明 }catch(err){ alert(err); } 函数表达式与函数声明各自的作用? 函数声明会在函数表达式被解析和求和之前先被解析,如果是函数表达式在函数声明之前那么函数声明也会在其之前解析 示例: alert(foo()); function foo(){ return "Hello World"; } 提示:函数声明最好不要在判断语句中使用