如何编写简单的parser(实践篇)

2019-01-30
阅读 9 分钟
5.4k
上一篇(《如何编写简单的parser(基础篇)》)中介绍了编写一个parser所需具备的基础知识,接下来,我们要动手实践一个简单的parser,既然是“简单”的parser,那么,我们就要为这个parser划定范围,否则,完整的JavaScript语言parser的复杂度就不是那么简单的了。

如何编写简单的parser(基础篇)

2019-01-22
阅读 4 分钟
7.1k
简单的说,parser的工作即是将代码片段转换成计算机可读的数据结构的过程。这个“计算机可读的数据结构”更专业的说法是“抽象语法树(abstract syntax tree)”,简称AST。AST是代码片段具体语义的抽象表达,它不包含该段代码的所有细节,比如缩进、换行这些细节,所以,我们可以使用parser转换出AST,却不能使用AST还原出“...

Isomorphic React(React同构应用)三 :Bundle with Webpack

2016-12-18
阅读 9 分钟
4.1k
使用webpack对组件化的前端项目进行打包在如今是比较流行的做法。webpack解决的根本问题是处理项目中各种不同类型资源的依赖关系,并把他们打包成一个或多个文件,这也是我接触webpack的初衷。在webpack之前有seajs、FIS等解决模块化依赖问题的方案,seajs只解决模块引入的问题,FIS在纯前端的环境下显得过于臃肿(或许...

React——diff算法

2016-03-01
阅读 2 分钟
3.3k
不知道是从什么时候开始,写JavaScript的时候,脑袋里面就会一直回响着一句话,尽量避免DOM操作,原因是DOM操作比较消耗性能,特别是在复杂的DOM结构中进行DOM操作。而当我们使用各种各样前端模板引擎的时候,更是无法避免不停地操作DOM。

HTML与BODY的表现

2016-02-23
阅读 3 分钟
2.6k
body背景图高度固定在2000px左右;body内内容高度不固定(可能会小于浏览器可视窗口高度,也可能会高于背景图高度即高于2000px);

[转]JavaScript Fetch API

2016-02-22
阅读 1 分钟
2.6k
JavaScript 通过XMLHttpRequest(XHR)来执行异步请求,这个方式已经存在了很长一段时间。虽说它很有用,但它不是最佳API。它在设计上不符合职责分离原则,将输入、输出和用事件来跟踪的状态混杂在一个对象里。而且,基于事件的模型与最近JavaScript流行的Promise以及基于生成器的异步编程模型不太搭(事件模型在处理异步...

ES6——箭头函数

2016-02-22
阅读 2 分钟
3.6k
param 是参数,根据参数个数不同,分这几种情况:() => { ... } // 零个参数用 () 表示;x => { ... } // 一个参数可以省略 ();(x, y) => { ... } // 多参数不能省略 ();当然,和普通函数一样,箭头函数也可以使用 ES6 新增的「默认参数」和「剩余参数」( Firefox15+ 开始支持):

JavaScript的标签

2016-02-18
阅读 2 分钟
2.4k
学了那么久用了那么久的JavaScript,也是第一次听说有标签这么个东西,也许是以前粗略学习的时候,一带而过吧。上w3cschool上看了下,JavaScript的标签指的是: