[JS] 变量提升

百般思念 提交于 2019-12-24 01:13:38

猜猜下面的代码会输出什么东东?

var foo = 1var foobar = function() {
  console.log(foo)var foo = 2}foobar()

如果你知道局部变量这个概念的话,你可能会觉得这个输出是foo is not defined
如果你还知道JS里有变量提升这个概念的话,你可能觉得这个输出会是2
如果你还知道JS里的变量提升只能提升变量,但不能把值也带过去的话,你会觉得这个输出会是undefined

对啦,就是undefined

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!