前言
原文来自于:浏览器工作原理与实践:07|变量提升:JavaScript代码是按顺序执行的吗?
本文属于个人读书笔记总结,好记性不如烂笔头,学到的东西通过自己的总结后记录下来的才算是自己的知识。
我们都知道,JavaScript有很多语法糖或者语法坑,什么闭包、this对象,网上一查一大把,但很多文章讲的都是“是什么”或者“怎么样”,很少会讲“为什么”,直到我学了这个课程《浏览器工作原理与实践》,从机制上去理解这些知识,瞬间就悟了。有兴趣的可以去极客时间看看这个课程。
正文
一、变量提升
先来看两段代码:
showName()
console.log(myname)
var myname = '极客时间'
function showName() {
console.log('函数showName被执行');
}
结果:函数能正常调用,但是变量输出却是undefined

如果我们把第三行的变量定义去掉
showName()
console.log(myname)
function showName() {
console.log('函数showName被执行');
}
结果则是:myname没有定义

本文是作者关于JavaScript的读书笔记,深入探讨了变量提升现象以及代码的编译和执行阶段。在变量提升中,变量声明被提升到代码开头并赋予`undefined`。JavaScript代码执行分为编译和执行两个阶段,编译阶段包括变量提升,执行阶段按顺序处理代码。通过理解这些机制,有助于更好地掌握JavaScript的工作原理。
最低0.47元/天 解锁文章
762

被折叠的 条评论
为什么被折叠?



