关于 Javascript 提升的困惑
Confusion about Javascript Hoisting
我以为我掌握了提升的概念,但下面的代码让我感到困惑。 return1怎么办?第二个 example() 函数会被提升到第一个之上吗?
function example() {
return 9;
}
console.log(example());
function example() {
return 1;
}
如果在编译阶段挂起函数声明,在执行阶段执行函数表达式。 returns 7 下面的代码怎么来的?仅仅是因为先声明了示例表达式吗?
var example = function() {
return 7;
}
console.log(example());
function example() {
return 0;
}
提前致谢!
调用 var example = function()
而不是 function example()
的原因是提升的顺序。
Functions are hoisted first, then variable declarations, per
ECMAScript 5, section 10.5 which specifies how hoisting happens.
在此处阅读更多内容:
我以为我掌握了提升的概念,但下面的代码让我感到困惑。 return1怎么办?第二个 example() 函数会被提升到第一个之上吗?
function example() {
return 9;
}
console.log(example());
function example() {
return 1;
}
如果在编译阶段挂起函数声明,在执行阶段执行函数表达式。 returns 7 下面的代码怎么来的?仅仅是因为先声明了示例表达式吗?
var example = function() {
return 7;
}
console.log(example());
function example() {
return 0;
}
提前致谢!
调用 var example = function()
而不是 function example()
的原因是提升的顺序。
Functions are hoisted first, then variable declarations, per ECMAScript 5, section 10.5 which specifies how hoisting happens.
在此处阅读更多内容: