认识v8编译的字节码(bytecode)

2020年07月28日
/ /
ignition
js代码在v8的编译过程 代码需要编译为机器代码,才能最终在目标机器上执行。v8为了做到这一点,设计了中间层-字节码(bytecode)。 为了方便转译为机器代码,字节码采用了和物理CPU类似的带寄存器-累加器的计算模型。它的理解难度介于高级语言和汇编语言中间。 这个代码到bytecode的转译过程发生在Ignition里;而从bytecode到机器代码,则在TurboFan里进行。 v ...

正则表达式里问号的作用

2020年07月10日
/ /
regextester-icon
正则表达式一直是我的弱项,一来因为用的比较少,所以每次碰到的时候,脑子里的两个小人儿就开始吵架:“又碰到了,又不会了,赶紧学习一下吧。”“不会也没什么,不经常用,再说split/indexOf也一样能达到目的,打游戏吧”,然后我全境封锁2就满级了。 正则里问号主要用在三个地方:量词、分组、断言 量词 问号把默认的贪婪量词(greedy quantifier)变为懒惰量词(laz ...

最近“沉迷”游戏

2020年05月08日
/ /
the-division-logo
我很少玩游戏。 除去成年人的时间分配困境,我的主要原因是,玩游戏注意力总是会分散在一些无关紧要的事情上。例如老滚总是在测试这个山头儿如果直接爬能不能上去(结论是通常是可以),几个小时就在半山腰横跳、折返跳、摔死重新跳;射击游戏又总想蹲角落阴人,找些刚好能擦到边又不会被反杀的,诸如柜子中间、狭窄过道、门后之类的地方;辐射4老想开控制台无限 ...

吱一声,2020你好

2020年04月14日
/ /
为什么是2020你好呢?因为上一篇是2019年12月31日写的。 完美趴过了第一季度,一转眼第二季度已经过去半个月。 记得2019年末说会在这里更新更多日常,那么现在的情况就是,没什么太值得一说的日常。 年前买了mbp16,比iMAC快很多,缺点说没有USB接口,接个DAC都要转,拖个大板子丑到爆。 由于新冠的影响,之前每周去健身房的日常也中断了半年,只能在家拿板凳凑 ...

2019年底,新建了一个博客

2019年12月31日
/ /
gatsbyjs
近些篇一直在更新一些学习心得,不过最近感觉放在这里不太合适。一些朋友表示“不知道该说什么”。加上对于WordPress,准确的说是php,缺乏兴趣,所以…… Time to move on. 稍等,不是要放弃写这个博客。 我新开了一个,记录一些工作的日志。传送门在【这里】,用了个二级域名,cname过去的。 ============================================= 博客是某天看到Dan大佬 ...

从关注点分离到css-in-js

2019年12月07日
/ /
css-in-js
一直以来,前端推崇“关注点分离”的原则:即HTML、CSS、JavaScript被拆分在不同的(一个或者若干个)文件里。写页面时,需要按照需要,引入不同的css和js文件。这样做的好处显而易见:页面结构清晰,没有css样式的杂糅,方便抽取公共组件。由于大部分任务都是页面级别的,粗粒度开发,这一点是很有必要的。再加上网络带宽限制,在很长一段时间里,前端程序员以抽 ...

React-差异对比(diff)和commit的大体流程

2019年11月29日
/ /
react-hexagon
一转眼距离上篇的React-Fiber已经一个月了。这段时间依旧在继续写React-native,虽然写的东西看起来跟以前差别不大,和起初接触的新鲜感已经不同,更多的内容需要深挖代码才能懂。不过只要保持好奇心,有意思的东西就会不断出现。 就像一遍一遍地对源代码debug。当我们看的比较多的时候……就可能陷入代码细节,无法弄清楚自己到底在搞啥。就像沉迷于基建忘记主线 ...

React-Fiber介绍及组织结构

2019年10月25日
/ /
react-hexagon
最近几个项目都是React Native,所以对React的执行机制越来越好奇,比如为什么React Native也要先import React?为什么看起来声明周期没什么差别,但是渲染的结果(标签)却完全不同?怀着这些疑问,决定还是再看一下代码。之前草草撸过一遍基本操作,对结构和流程有个大概轮廓,但都只是粗浅的了解。尤其对于16.x以来的Fiber,还是一片广阔的未知,正好趁着这个 ...