简介:不少概念不清或忘记,从新构建本身的知识体系。天天问本身1~多个问题。我是菜鸟 成为大神之路!
html
这两个方法的根本区别:JavaScript 函数和变量声明的“提早”(hoist)行为函数
若是咱们使用 匿名函数var foo = function () {}
这种方式, 编译后变量声明foo
会“被提早”了,可是他的赋值(也就是function函数体
)并不会被提早。 也就是,匿名函数只有在被调用时才被初始化
。ui
若是咱们使用 function foo(){}
这种方式, 编译后函数声明和他的赋值都会被提早。 也就是说函数声明过程在整个程序执行以前的预处理就完成了
,因此只要处于同一个做用域,就能够访问到,即便在定义以前调用它也能够
。spa
foo();
function foo(){
console.log('一次执行');
}
复制代码
var number = 0;
function foo(){
console.log('一次执行',number);
}
foo();
function foo(){
console.log('二次执行',number);
}
foo();
复制代码
参考文章中有涉及:第 13 天内容code
var foo = function(){}
var foo = function(){}();
function(){}
function(){}()
(function(){})();
(function(){}());
function foo(){}
function foo(){}();
function foo(){}(a);
(function foo(){});
(function foo(){})();
!function(){}();
new function(){}();
复制代码
参考文章:
① www.cnblogs.com/TomXu/archi…
② www.cnblogs.com/shuishuowob…cdn