这个声明了一函数 会不会提升 但是我提到最前面还是可以执行啊 求解
非严格模式中,是函数声明就会提升到当前作用域的最上面。
var a = function(){
alert(2);
}
这么就不会了,因为这不是函数声明,var a会被提升(变量声明提升),后面的赋值还在当前执行。
在同一作用域中会提升,{}里边,也就是在window.onload里会提升,而在这个方法外面是不能访问a的。
window.onload=function(){ // 在这个{}以内都可以访问
a(); //可以访问
function a(){console.log(1)}
}
a();// 不可以访问
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
针对函数,分
函数声明
和函数表达式
两种,这两种的提升方式不同:函数声明
提升后,就等同于:
函数表达式
提升后,等同于:
找到一个文档,讲的也不多,在这里