提升

1.只有声明本身会被提升,而赋值或其他运行逻辑会被留在原地

a=2;
var a;
console.log(a);
//2
console.log(a);
var a=2;
//undefined

2.函数声明会被提升,但函数表达式不会被提升。

foo()
function foo(){
  console.log(1);
}
//1
foo()
bar()
var foo=function bar(){
  console.log(1);
}
//TypeError:foo is not a function
//ReferenceError:bar is not defined
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • (注1:如果有问题欢迎留言探讨,一起学习!转载请注明出处,喜欢可以点个赞哦!)(注2:更多内容请查看我的目录。) ...
    love丁酥酥阅读 5,496评论 2 3
  • 到目前为止,大家应该很熟悉作用域的概念了,以及根据声明的位置和方式将变量分配给作用域的相关原理了。函数作用域和块作...
    liuxuan阅读 1,697评论 3 5
  • 直觉上会认为 JavaScript 代码在执行时是由上到下一行一行执行的。但实际上这并不完全正确,有一种特殊情况会...
    后发而先制阅读 1,616评论 0 0
  • 看到这里,我相信你已经知道了作用域的概念了,以及根据声明的位置和方式将变量分配给作用域的相关原理了。函数作用域和块...
    我就是z阅读 3,188评论 1 2
  • 今天小编要奉劝大家早点休息, 或许你会觉得熬夜没什么大不了的, 最多就是白天犯困而已。 然而如果你这样想就大错特错...
    为你健康相伴阅读 1,679评论 0 0

友情链接更多精彩内容