思考のかけら

Mensu - 思考のかけら

Mensu's Blog concerning what he has learned during programming

函数的非递归实现方法

use a stack to implement recursion

The article was initially posted on 2022-08-14. 栈的基本功能 这里简单回顾下栈的基本功能。栈可以用来实现 “后进先出” 的功能。C++ 函数嵌套调用中,最后调用的函数会最先处理完毕(return),因此很适合用栈来实现。 例子 举个简单的例子,我想打印 0、1、2 的所有排列,思路是在每个位置把 0 到 2 都循环一遍,如果前面...


Chrome 下的 CSS 样式重计算

CSS style recalculation in Chrome

The article was initially posted on 2020-04-05. 个人浅薄和粗糙的理解,忽略了大量细节,必有疏漏,仅供参考 前言 在 Chrome 下研究的网页性能问题时,我们偶尔会遇到样式重计算 Recalculate Style 耗时过长的问题,而常用的分析工具 Performance 提供了影响节点数 Elements Affecte...


Vue 组件的 rerender

the rerender of Vue components

The article was initially posted on 2018-10-03. 个人浅薄和粗糙的理解,忽略了大量细节,必有疏漏,仅供参考 双向绑定 例如下面这样一个简单的 Vue 组件,做的事情是在 <input> 中打字,<input> 的内容会同步到 {{ title }} 上去 <template> <...


ES Promise

ES Promise

The article was initially posted on 2018-06-05. 个人浅薄和粗糙的理解,忽略了大量细节,必有疏漏,仅供参考 这里主要是介绍 Promise 的工作机制。数据结构的实现和标准并不一致。 工作机制 const p = new Promise((resolve) => { // ... () => { ...


Node.js 与 V8 addon

node.js with v8 addon

The article was initially posted on 2018-05-28. 个人浅薄和粗糙的理解,忽略了大量细节,必有疏漏,仅供参考 Node.js 允许我们编写 V8 addon,并通过 Node.js 模块的形式导入。我们可以编写 C++ 文件,并将我们写的 C++ 函数和 JS 对象绑定,作为模块的接口,这样便可以通过在 JS 层调用模块接口进入...