文章是两年前写的,执行上下文的部分出现了不小的变化,下面补上一些较新的知识
执行上下文的过程
全局上下文创建
- 求this:浏览器中指向window
- 创建全局的词法环境:let/const/函数
- 创建全局变量环境,var
函数被调用,创建上下文,打入执行栈
- 求this:指向调用者
- 创建词法环境
- 记录变量/函数/参数
- 创建外部环境引用,全局变量或是父级(函数声明的时候的父级)的词法环境
- 创建环境变量:var
函数执行
- 运行代码,分配变量
- 离开函数
- 销毁上下文,出栈
文章是两年前写的,执行上下文的部分出现了不小的变化,下面补上一些较新的知识
执行上下文的过程
全局上下文创建
函数被调用,创建上下文,打入执行栈
函数执行
其实我最开始是不知道自己想要做什么的。
高考结束后,要挑专业了。家里人想要我去做医生,但我对此兴趣不大。我看了一下自己的分数,刚好够去华师,对那时的我来说,好像理科专业都差不多,看见华师的光学信息不错,便选择了这个专业,也是我运气不错,我压线进入了华师,压线进入了华师的王牌专业,然而这对我成为程序员好像并没有什么用。
转眼间,学习前端也有两年半了,从开始的不知js/css/html是什么,到一年前感觉自己工作比较重复觉得有点迷茫,再到现在重新充满激情,也获得了一些大公司的录取机会,也是多少找到了一点成为优秀前端的方向了。
不经意发现知乎上我两年前的零基础开始学 Web 前端开发,有什么建议吗?的回答还有人在看,在评论,有点感慨。我的分享应该也是帮助了一些人入门吧,他们或许在入门后也碰到跟我一样的迷茫,不知道他们是怎么解决的呢?现在把我在入门前端之后的发生的经历和成长也写出来,希望对大家也有点帮助。
明确三个概念:「后端渲染」指传统的 ASP、Java 或 PHP 的渲染机制;「前端渲染」指使用 JS 来渲染页面大部分内容,代表是现在流行的 SPA 单页面应用;「同构渲染」指前后端共用 JS,首次渲染时使用 Node.js 来直出 HTML。一般来说同构渲染是介于前后端中的共有部分。
感觉前端的确是折腾,之前还在流行前后端分离,现在怎么又要做前后端同构了?
原因是现在流行的SPA前端单页面应用比较沉重,首次访问需要加载文件较多,第一次加载过慢,用户需要等待前端进行渲染页面。而且不利于SEO及缓存,并且有一定的开发门槛。
前后端同构通过复用模板和JS文件,让一份代码可以同时跑在服务器和浏览器,首次渲染使用nodejs渲染页面,之后使用SPA路由跳转。可以有效减少用户首次访问的等待时间,并且对SEO比较友好,也便于缓存。
本前后端同构项目主要分为两个部分,一个是基于koa2的渲染服务器,另一个是基于原生JS和zepto的前端SPA。
随着项目的复杂,现在开发的移动端多页面项目构建时间超过二十秒,按一天重启二十次来说,一天有超过六分钟时间,一个月超过两小时用于构建webpack,如果能减少相关的时间,可以有效的节省开发时间。