以下为ChatGPT自动生成的解答,正确与否请自行判断。

BFE.devAI解答 - JavaScript 小测验
45. Hoisting VI

输出结果如下:

undefined
1
2
3
1

解释如下:

  • 第一次 console.log(foo),foo 还没有被声明,因此输出 undefined
  • 第二次 console.log(window.foo),输出全局变量 foo 的值,即初始的值为 1。
  • 第三次 console.log(foo),foo 被赋值为 2,因此输出 2。
  • 第四次 console.log(foo),foo 已经被声明为局部变量并赋值为 3,因此输出 3。
  • 第五次 console.log(window.foo),依然输出全局变量 foo 的值,即初始的值为 1。