文件上传进度和解析 Form Data

最近有一个小需求:上传文件的时候显示上传进度(上传了百分之多少)。这个需求不难,比如以下代码就能实现:

继续阅读“文件上传进度和解析 Form Data”

svg 学习

最近在学习 svg,写了一些 demo,记在这里,还挺有意思的。

以一张 svg 开头:

zengxiaoluan.com

d3 中的 domain 和 range

以下内容更新于 2019-06-14

最近一直在用 d3 画双通道示波器,因为不是很理解 d3 的原理,走了不少弯路,如果大家有兴趣学习 d3,可以看看这个示例,帮我们更好的理解 d3 的一些基础 API,实现我们想要的效果。

标签 text 、tspan

示例中的图形是一个正弦函数,公式如下:

$y = asin(bx + c)$

公式中的 a、b、c 如何影响图形,我就不解释了,我先回去翻一下高中课本。

See the Pen svg-text/tspan by zeng (@zengxiaoluan) on CodePen.

继续阅读“svg 学习”

generator 和异步回调

在我们日常的前端开发中,异步回调是不可避免的操作,会严重影响我们的编程体验和代码的维护性、阅读性,而 promise 和 generator 可以在一定程度上解决这个问题。它们没有那么神奇,只是代码上的一些小花招,现在我们具体来看看 generator 是如何解决异步回调的问题。

继续阅读“generator 和异步回调”

一些排序算法

记得有一个明星程序员说,做一个 web developer 是不用学习数学的。那么自然也不用学习算法了。作为一个前端,在实际工作中确实很少实现什么排序算法,因为在 JavaScript 的语言层面,就已经实现 sort 函数了。但是学习这些排序算法,依然有助于我们理解这些语言相关内置函数的原理。 继续阅读“一些排序算法”

贪心算法 – JavaScript 描述

理解贪心算法的本质并不难,我们都很贪心。比如说,桌子上有 5 张人民币,面额分别是 100、50、20、10、5,但是按照要求我们只能选 3 张,那这 3 张怎么选呢?傻子都知道,我们肯定选面额大的。这就是贪心算法,每一步都是当下选择的最优解。

下面我们来看一些具体的问题。

继续阅读“贪心算法 – JavaScript 描述”

动态规划(Dynamic programming)— JavaScript 描述

《数据结构与算法 JavaScript 描述》这本书错误好多,为什么译者不把这些错误纠正呢?

在工作中,我们都用过递归,用俗话说就是函数自己调用自己;而动态规划一般被认为是和递归相反的一种解决问题的思路:递归是从解决一个大问题开始,通过逐步解决一些小问题,来使最终的问题得到解决;动态规划的思路则恰恰相反。 继续阅读“动态规划(Dynamic programming)— JavaScript 描述”

我所了解的 js 错误收集

收集了一些 js 错误监控的资料,大体上可以了解这是个什么东西。

什么?

简单来说,就是代码报错了,我想要知道这个报错信息。

为什么?

以前发过关于这个话题的内容:

JavaScript 代码不像运行在服务器端的PHP、Java等,运行环境单一,代码调试通了没有出错就不会有什么错误,而 JavaScript 不同,需要运行在各种不同的浏览器上,为了保证自己写的代码足够健壮,所以必须做一下错误脚本监控。

这个文章介绍了错误脚本监控上报的原理:

https://github.com/joeyguo/blog/issues/13

也有创业公司免费提供错误脚本监控的服务,今天试了一下,挺简单好用的:

https://fundebug.com/about

继续阅读“我所了解的 js 错误收集”