Rom*_*Kim 5 javascript hoisting executioncontext
我以为我掌握了提升的概念,但下面的代码让我感到困惑。怎么返回1呢?第二个 example() 函数会被提升到第一个函数之上吗?
function example() {
return 9;
}
console.log(example());
function example() {
return 1;
}Run Code Online (Sandbox Code Playgroud)
如果在编译阶段提升函数声明并在执行阶段执行函数表达式。下面的代码为什么返回7?这仅仅是因为首先声明了示例表达式吗?
var example = function() {
return 7;
}
console.log(example());
function example() {
return 0;
}Run Code Online (Sandbox Code Playgroud)
先感谢您!
var example = function()被调用而不是被调用的原因function example()是提升的顺序。
根据ECMAScript 5 第 10.5 节,函数首先被提升,然后是变量声明, 其中指定了提升如何发生。
在这里阅读更多内容:JavaScript 中的提升顺序
| 归档时间: |
|
| 查看次数: |
84 次 |
| 最近记录: |