foo(1) //报错
{
foo(2) //2
function foo(v) {
console.log(v)
}
foo(3) //3
}
foo(4) // 4
//代码运行环境node9.0
函数声明foo正常情况下在块级作用域内,被提升到声明所在到块级作用域的最上方,所以foo(1)报错,foo(2),foo(3)成功执行,但为什么foo(4)能够执行.
虽然了解es规范为了兼容代码,允许js引擎按照自己的方式执行代码,但还是无法理解foo(4)为什么能被执行,求指点。
哈士奇WWW
相关分类