JS中的二进制操作简介

写这篇博客的起源是在div.io上的一篇文章《你所不知道的JavaScript数组》by 小胡子哥下的评论中的讨论。

因为随着XHR2和现代浏览器的普及,在浏览器当中处理二进制不再向过去那样无所适从,随着Canvas/WebGL等新技术逐渐开始进入大众视野,也会用到一些字节数组或者16位、8位整数等东西。在node.js刚刚发布的4.0版本中,Buffer的底层使用了更符合JS标准的Uint8Array来实现,浏览器和node.js再次向相同的目标靠近了一点点,所以对于JS中处理二进制,我就打算写这篇文章作一个入门性质的流水账,方便一些对二进制处理不了解的同学快速入门,虽然在前端领域用到的不多,不过也可以作为茶余饭后的休闲谈资。

来吧,造个模板引擎轮子——目标代码生成

上篇上上篇,这一篇将介绍在上一篇区分出“模板语言”与“自然语言”的结构之后,如何进行“语法分析”、“语义分析”和“目标代码生成”。

这里几个关键词都加了引号,主要是因为和经典编译原理上定义的几个环节只是意合而非形同,不过用这样经典的三段式结构来打比方也许可以更好理解一些。

来吧,造个模板引擎轮子——模板文件解析

上篇,这一篇将介绍JS模板引擎是如何区分出“自然语言”和“模板语言”、以及如何进一步解析“模板语言”,最终我们需要拿到详细的模板语句结构。

这里说的“自然语言”就是只要生成的目标文件,比如HTML/XML;“模板语言”就是……模板语言了。

来吧,造个模板引擎轮子——开篇

来吧战个痛,造个模板引擎轮子。

是的,我又给自己挖了个新坑,这次虽然代码已经写了一两个月了,但是写码之余,意犹未尽。

我知道在MVVM代表着先进生产力的发展要求,并且也越来越流行的今天,字符串模板已经越来越势微。而且这玩意其实技术含量并不高,是“技巧 > 技术”的类型。不过手痒得很,于是还是造了一个。

这次挖这个坑就是要为我的模板引擎轮子写一个开发心得流水账,暂时不知道会写多少篇,说不定两三篇,说不定一篇就变有生之年系列……

内容方面其实很枯燥,因为我不喜欢写一些高大上的设计思路这类的东西都特么边写边删边想的哪有什么设计,对于工作之外的玩意,我就喜欢写了删删了写,说好听点这叫好读书,不求甚解(掩面逃)。

哦,先丢个GitHub,继续做一个不负责任的男人,无测试、无DEMO、无主页的三无项目……为了尝鲜、玩票外加装逼,我用的是TypeScript来写,其实和JS也没啥差别。

编码歪传——Web篇

继续上一篇。

身为一名Web开发者,这一篇将介绍一下在Web应用当中常会出现编码问题的地方。文中经常会乱用“字符集”和“编码”,不过看明白了第一篇的话相信你不会混淆概念,而且我个人觉得这两个概念很多时候混淆也无妨……