js变量后面加问号是什么_js没那么简单(1)-- 执行上下文

本文探讨JavaScript的执行上下文和变量提升,解释了执行上下文的生成时机、运行过程和调用栈,以及在词法环境和变量环境中如何影响代码的执行。通过实例解析变量提升的本质,指出其在块作用域中的问题,并介绍了eval环境的影响。
摘要由CSDN通过智能技术生成

前言

我为什么写这个文章?也许换个耳熟能详的话题会有更多人看吧。之前发了个tls感觉阅读量不行。

要讲ecma语法吗?我觉得还是不了吧,毕竟这些繁琐,枯燥,而且门槛低。

那讲什么好?讲一点我自己觉得大家都知道,但是可能理解不到位都东西。

我自己理解到位吗?我想不一定很到位,但是一定很有思考价值。

这是一个系列?它可能是一个系列,就从执行上下文和运行开始吧。

js难不难?看你自己都目标吧,我觉得没有简单的东西,当你思考越多,就会看到更多东西,相对以前的理解就是难的。

那就开始吧

正文

js或者ecmascript?

大家用了那么久js,有没有搞清楚规范和实现的区别呢?ECMA这个组织定义了这个语言的规范,Javascript是这个规范的一个实现。这意味着,他可以有很多实现的可能,只是Javascript是其中一个最热门的实现。我们通常说的ecma规范,那指的是一种口头协议规范,通常我们说javascript语言,那指的是已经实现了ecma某个规范的一种语言。

在这个基础上,执行上下文就是ecma规范里面提到的一个抽象概念。这意味着,这东西不是一个具体已经实现出来的东西,他仅仅只是一个抽象模型,具体在计算机内部是怎么编译运行,以什么样的面向对象代码呈现,那应该是引擎(v8)实现的细节的内容。

那么执行上下文的意义在于,它可以给一个抽象模型,让我们更简单的预测js的运行机制。同时,执行上下文对后续理解js内存,垃圾回收,闭包等具有深刻意义,他可以帮助我们在不需要很了解基础底层情况下去分析内存,执行过程。

js代码是如何工作的?

20df6b18d68972efaa97b7a08d68798a.png

为了不复杂化思路,我们可以暂时把js运行过程分成上图三

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值