定义function语句2种情况的差别
一、function foo(){}
二、var foo=function{};
第一种情况在哪定义都可以,第二种,必须放在使用的前面。
第二种情况明确表示foo是一个包含一个函数值的变量。函数就是数值。
function语句在解析时会被提升。不管function放置在哪里,他都会移动到被定义时所在作用域的顶层。这放宽了 函数必须先声明后使用的要求。
一个语句不能以一个函数表达式开头,因为官方假定单词function 开头的语句是一个function 语句,解决方法是函数表达式扩在圆括号内。
(function(){
var a;
//这个函数可能对环境产生影响,但不会引入新的全局变量。
}
)