首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
缪宇
掘友等级
Web Developer
|
sefon
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
371
文章 304
沸点 67
赞
371
返回
|
搜索文章
最新
热门
用JavaScript实现一门编程语言 3-1 (解析器之抽象语法树)
正如前面提到的,解析器会建立一个结构来表示程序的语义。AST节点是一个普通的JavaScript对象,它有一个类型属性,指定它是什么类型的节点,以及根据特定类型指定的附加信息。 { type: "lambda", vars: [ NAME... ], body: AST } {…
用JavaScript实现一门编程语言 3 (写一个解析器)
根据不同的语言,要实现一个解析器,是一个中等复杂的工作。本质上,解析器就是把你的代码转换成一个“抽象语法树”(简称AST)。AST是代码的抽象语法结构的树状表现形式,抽象语法树的结构不依赖于源语言的文法。后面我会用专门的章节来描述我们的AST。 编写解析器的主要困难在于未能正确…
用JavaScript实现一门编程语言 2 (λanguage语言简介)
在开始之前,应该对我们要是现实什么有清晰的认识。 λanguage看起来有点像JavaScript,但其实并不是。首先,没有申明,只有表达式。一个表达式返回一个值也可以替换其他表达式。分号用来间隔表达式。花括号用来创建表达式序列,并且它本身也是一个表达式。如下: 函数被lamb…
用JavaScript实现一门编程语言 1 (前言)
这一个关于如何用JavaScript实现一门编程语言的教程。如果你曾经写过解释器或者编译器,这个教程你可能学不到什么新的东西,但是,如果你正在用正则表达式去 “解析”任何看起来看起来像编程语言的东西,那你可以跳过直接去看解析的部分。 什么是解析器,如何编写一个解析器。 如何编写…
【JavaScript】什么是扩展运算符?
通过四个例子我们来理解扩展运算符. 它看起来像什么? 三个点: ... 它能做什么? 它允许一个表达式拓展成多个标记/变量/参数。 废话少说,让我们通过一些例子来理解到底什么是扩展运算符。 上面的代码,我们没有使用扩展运算符。展示了,一个数组包含另一个数组。 那我们就可以使用扩…
9个超赞的视觉效果
See the Pen <a href='https://codepen.io/yumeeeei/pen/BQPmpX/'>Love is Love 🌈</a> by yumeeeei (<a href='https://codepen.io/yumeeeei'>@yumee…
【GitHub】12个实用技巧
在GitHub上打开一个文件(任何仓库的任何文件),在页面的右上角有一个像小铅笔的按钮。点击它,你就可以编辑文件了。当你编辑完成,点击Propose file change,GitHub将为你fork这个仓库,然后创建pull request。 你不再需要fork这个仓库,pu…
【React】为什么我不再使用setState?
几个月前,我开始停止使用React的 setState 。我并不是不再需要组件状态,而且不再用React来管理我的组件状态。 Bug产生的原因是忘记了React的state是异步的;从日志打印延迟可以看出来。 1. setState是异步的 许多开发人员起初并没有意识到这一点,…
【Immutable.js】可持久化数据结构以及结构分享
将数据视为不可变,将给你带来很多好处。事实上,这是也React背后的原理:React的元素是不可变的。 我要把第50,005条任务的completed改为ture。 这项操作运行了134ms。 为什么用了这么长时间呢?因为当使用Object.assign,JavaScript会…
【JS】装饰器让你的代码更简洁
当我们在使用JavaScript时,有时需要用到setTimeout函数来强制代码延迟运行。比如: 我很讨厌这样写代码,我希望它变得简洁,所以我们可以把setTimeout函数抽象成装饰器。 这里我们需要传入一个数值作为参数(默认为0),所以我们需要使用装饰器工厂模式。 接下来…
下一页
个人成就
优秀创作者
文章被点赞
3,093
文章被阅读
257,511
掘力值
9,225
关注了
78
关注者
2,442
收藏集
2
关注标签
22
加入于
2016-09-19