定义function语句2种情况的差别

一、function foo(){}

二、var foo=function{};

第一种情况在哪定义都可以,第二种,必须放在使用的前面。

 第二种情况明确表示foo是一个包含一个函数值的变量。函数就是数值。

function语句在解析时会被提升。不管function放置在哪里,他都会移动到被定义时所在作用域的顶层。这放宽了 函数必须先声明后使用的要求。


一个语句不能以一个函数表达式开头,因为官方假定单词function 开头的语句是一个function 语句,解决方法是函数表达式扩在圆括号内。

(function(){

    var a;

   //这个函数可能对环境产生影响,但不会引入新的全局变量。

 }   


原文地址:https://www.cnblogs.com/danghuijian/p/4400027.html