【宇宙理论】前端的洪荒开篇

我们可以利用宇宙的框架去渐进式的理解前端javascript的相关概念。
首先啊,我们知道,前端是通过浏览器的渲染机制,把一些html,css,js等文档渲染成我们人肉眼可见的相关画面。那么他的运行机理是很耐人寻味的,人们往往对一些微小的事物不可查见,那我们可以进行宏观描述。
首先我们来说下环境。
我们知道js,也就是我们说的javascript,是用来操作一些浏览器内容的脚本语言。使网页具有交互性。其实整个javascript脚本空间,就相当于是一个宇宙宏。从我们常见的银河系为例,里面有九大行星等物理天体。我们如果把每个星球看作是一个变量,那么一个星系,我们可以理解为一组函数。而这整个宇宙宏,就是我们js语言赖以生存的环境,那么我们去写js脚本的时候,我们会声明变量,声明函数,声明变量,我们在es5之前,常用var,es6之后就常用let、const等。声明函数呢,我们一般有4种方式,函数声明,函数表达式,new Function当然还有es6之后的箭头函数。当我们去声明变量和函数的时候,会存在着变量提升,也就是说,可以先使用后声明;但是用函数表达式这些的时候,是不能先使用后声明的。然后呢,我们整个的宇宙宏,也就是我们的window了,window仿佛神一样,一切始于window,一切终于window;无论何时何地,我们去声明变量后,window都是知道的,它会把这些变量,分门别类的放到指定的地方;像常用的基本数据(sbnnu);string,boolean,number,null,undefined,symbol等就放到存储模块中,存储模块就会按照规则,去组织这些变量,该放栈就放栈里,该放堆里就放堆里,其实从微观上看,就是一个一个的电器组件的01编码。那么我们写完代码后,相当于整个宇宙就有一定的秩序了,然后就开始运转,按照从上到下的执行顺序去运转,运转预编译的代码块。那么作为使用人员的我们,经常会去找一些变量,比如,我们要找白矮星3522,但是我们确实不知道在哪里,我们就会一个一个的星系去找,白矮星3522你不清楚,那地球,你总知道了吧,其实地球在宇宙的星系编号是M34-4602151-B,那么你怎么找到地球呢?其实这就涉及到了作用域链,我们想找到地球,也就是M34-4602151-B,银河系相当于函数,在银河系内部的就是函数作用域,我们在window里面找,没找到,就去银河系里找,也就是函数作用域中找,也就找到了。而这整个的查找机制,就相当于前端中的作用域链。也叫链式查找;其实每个星球,和宇宙都是关联着的。通过什么呢?在宇宙中,我们暂时查找不到这种力量,假设就是引力吧。那么在前端中,就是[[scoped chain]];而有些行星用完了,老了,就需要回收,前端的垃圾回收机制是如何的,其实就相当于宇宙中的黑洞;我们知道,数据类型,对象,函数这些都是在内存中运行的,而前端的内存管理是自动执行的。基本的回收算法呢,是“标记-清除”,首先垃圾回收器会标记,记住这些内存中的变量,当这些引用没有访问时,就进行清除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李卓书

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值