读书笔记|JavaScript中的变量提升、编译阶段和执行阶段

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

前言

原文来自于:浏览器工作原理与实践: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没有定义

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值