var foo = function(){

alert(1)

}

function foo(){

alert(2)

}

foo()会输出1

这是因为function foo()这种写法会在程序执行前的预处理中赋值,

而var foo = function()会再一次声明foo、再一次赋值

把var 换成 let就会报错:foo已经被赋值了

这个var的变量提升是两码事,var的变量提升说的是

alert(foo)

var foo = function(){

alert(1)

}

会打印出undefined而不是未声明

相关文章:

  • 2022-03-08
  • 2022-12-23
  • 2022-03-04
  • 2021-10-18
  • 2022-12-23
  • 2021-05-18
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-07-05
  • 2022-12-23
  • 2022-12-23
  • 2021-10-25
  • 2021-05-13
相关资源
相似解决方案