摘要:在上一篇文章中,我们总结并模拟了 JSX 生成真实 DOM 结点的过程,今天接着来介绍一下无状态组件的生成过程。 先以下面一段简单的代码举例: js const Greeting = function ({name}) { return { }; }; const App = ; console.l 阅读全文
posted @ 2018-07-21 23:18 liuhe688 阅读 (114) 评论 (0) 编辑
摘要:在上一篇文章中,我们介绍了 Babel 是如何将 JSX 代码编译成可执行代码的,随后也实现了一个自己的解析器,模拟了 Babel 编译的过程。 现在我们再来回顾一下,假定有如下业务代码: js const style = { color: 'red', fontSize: '20px', }; c 阅读全文
posted @ 2018-07-15 23:16 liuhe688 阅读 (192) 评论 (0) 编辑
摘要:上次我们总结了 React 代码构建后的 webpack 模块组织关系,今天来介绍一下 Babel 编译 JSX 生成目标代码的一些规则,并且写一个简单的解析器,模拟整个生成的过程。 我们还是拿最简单的代码举例: 这段代码在经过Babel编译后,会生成如下可执行代码: 看的出来,App 是一个 JS 阅读全文
posted @ 2018-07-13 13:04 liuhe688 阅读 (264) 评论 (0) 编辑
摘要:现代前端开发离不开打包工具,以 webpack 为代表的打包工具已经成为日常开发必备之利器,拿 React 技术栈为例,我们 ES6 形式的源代码,需要经过 webpack 和 Babel 处理,才能生成发布版文件,在浏览器中运行。今天就结合 React 来梳理一下 webpack 打包时模块的组织 阅读全文
posted @ 2018-07-07 23:13 liuhe688 阅读 (72) 评论 (0) 编辑
摘要:Process模块 (Features of Process) is a global variable which indicates the current Node.js process. It is actually an instance of , which is used to sub 阅读全文
posted @ 2018-06-10 08:29 liuhe688 阅读 (37) 评论 (0) 编辑
摘要:In normal development, we are likely to use 'console.log' for message logging, yet it’s simple, we are unfortunately not able to persist the messages 阅读全文
posted @ 2018-05-30 12:37 liuhe688 阅读 (35) 评论 (0) 编辑
摘要:CLI, as an abbreviation of Command line Interface, can receive user's input and give an immediate response in terminal. In Node.js, globally installed 阅读全文
posted @ 2018-05-05 19:45 liuhe688 阅读 (40) 评论 (0) 编辑
摘要:CLI 的全称是 Command line Interface (命令行界面),即在命令行接受用户的键盘输入并作出响应和执行的程序。 在 Node.js 中,全局安装的包一般都具有命令行界面的功能,例如我们用于启动 Web 服务的 http server 包,在全局安装后,可按下图所示在当前目录启动 阅读全文
posted @ 2018-05-02 22:15 liuhe688 阅读 (21) 评论 (0) 编辑
摘要:Node.js 的模块机制可以很好地解决业务代码混乱的难题,但对于第三方模块包,就有些力不从心了,因为第三方模块包分散存放在各地,无法集中式管理。这就需要一个包管理机制,在 Node.js 中,Isaac Z.Schlueter 大神创建了 NPM 库,来集中管理这些第三方包。 对于版本管理,很多语 阅读全文
posted @ 2018-04-26 22:13 liuhe688 阅读 (18) 评论 (0) 编辑
摘要:我们知道,Node.js 选用 JavaScript 语言来编写代码。JavaScript 这门语言呢,之前主要用于前端应用,并没有相应的模块管理功能,而是以 标签为单位,直接引入即可运行。Node.js 主要运行在后端,这怎么办呢?好在它借鉴了 中的 规范,实现了一套易用的模块系统。今天,我们就来 阅读全文
posted @ 2018-04-15 22:12 liuhe688 阅读 (15) 评论 (0) 编辑
摘要:在上两篇文章中博主介绍了JavaScript中的正则常用方法和正则修饰符,今天准备聊一聊元字符和高级匹配的相关内容。 首先说说元字符,想必大家也都比较熟悉了,JS中的元字符有以下几种: 它们都表示特殊的含义,下面我们就来一一介绍它们。 / (slash) 用于创建一个字面量的正则表达式: \ (ba 阅读全文
posted @ 2017-01-13 08:18 liuhe688 阅读 (482) 评论 (1) 编辑
摘要:在上一篇文章中我们讲了正则表达式的基本用法,接下来博主想聊聊其中的细节,今天就从正则修饰符开始吧。 正则修饰符又称为正则标记(flags),它会对正则的匹配规则做限定,进而影响匹配的最终结果。在上次的文章中我们也提到过,正则修饰符一共有以下几种,可以单独使用,也可以组合使用: 其中的i好理解,正如上 阅读全文
posted @ 2016-12-21 08:30 liuhe688 阅读 (776) 评论 (1) 编辑
摘要:正则表达式是一个精巧的利器,经常用来在字符串中查找和替换,JavaScript语言参照Perl,也提供了正则表达式相关模块,开发当中非常实用,在一些类库或是框架中,比如jQuery,就存在大量的正则表达式,所以说学好正则表达式,是提高开发技能的一项基本要求。那么今天博主就来详细总结一下正则表达式的相 阅读全文
posted @ 2016-12-01 08:15 liuhe688 阅读 (962) 评论 (2) 编辑
摘要:由于JavaScript是门松散类型语言,定义变量时没有类型标识信息,并且在运行期可以动态更改其类型,所以一个变量的类型在运行期是不可预测的,因此,数据类型检测在开发当中就成为一个必须要了解和掌握的知识点。 对于数据类型检测,实习新手会用typeof,老司机会用Object.prototype.to 阅读全文
posted @ 2016-11-16 08:34 liuhe688 阅读 (1551) 评论 (3) 编辑
摘要:在上一篇文章中,我们详细讲解了JavaScript中的自动类型转换,由于篇幅限制,没能覆盖到所有的转换规则,这次准备详细讲解一下。 上次我们提到了对象类型参与运算时转换规则: 1). 在逻辑环境中执行时,会被转换为true 2). 在字符串环境和数字环境中,它的valueOf()方法和toStri 阅读全文
posted @ 2016-11-03 08:56 liuhe688 阅读 (727) 评论 (0) 编辑