函数声明和函数表达式的一些见解

在js中

function(){

console.log(11);

}();

执行时会报错,

Uncaught SyntaxError: Unexpected token (

预解析阶段把function(){console.log(11);}提升到顶部,但还是一个函数声明。

在执行阶段后面加上()会报错。

自执行正确格式是

(function(){console.log(11);})();

而以下格式会正确执行

var a = function(){console.log(22);}();

因为a提升后已经赋值即:a=function(){console.log(22);};

已经成为一个函数表达式。

在a后面加上()相当于a();

posted on 2017-03-09 12:50  daV_chen  阅读(124)  评论(0编辑  收藏  举报

导航