一年Node.js开发开发经验总结

2020-08-09
阅读 4 分钟
8k
不知不觉的,写Node.js已经一年了。不同于最开始的demo、本地工具等,这一年里,都是用Node.js写的线上业务。从一开始的Node.js同构直出,到最近的Node接入层,也算是对Node开发入门了吧。目前,我一个人维护了大部分组内流传下来的Node服务,包括内部系统和线上服务。新增的后台服务,也是尽可能地使用Node进行开发。本...

【译】深入了解V8

2020-07-25
阅读 5 分钟
3.1k
官方文档指出:V8是谷歌开源高性能JavaScript和WebAssembly引擎,用C++编写。它主要用在Chrome和Node.js中,等等。

从JS中的内存管理说起 —— JS中的弱引用

2020-07-22
阅读 6 分钟
4.9k
在所有的编程语言中,我们声明一个变量时,需要系统为我们分配一块内存。当我们不再需要这个变量时,需要将内存进行回收(这个过程称之为垃圾回收)。在C语言中,有malloc和free来协助我们进行内存管理。在JS中,开发者不需要手动进行内存管理,JS引擎会为我们自动做这些事情。但是,这并不意味着我们在使用JS进行编码时...

如何优雅的处理前端开发中的File

2020-06-22
阅读 5 分钟
6.4k
在前端开发中,我们经常会遇到对文件的操作,特别是对图片的操作。在Node端,提供了file相关的接口,供我们使用。在浏览器中,Html5提供了File相关的Web Api。

作为一名前端工程师,说一说我眼里的用户增长

2020-01-13
阅读 4 分钟
3.2k
2016年毕业后至今,我做了大概3年的用户增长业务。由于换团队了,和用户增长终于要告一段落了。不完全总结一下这几年做用户增长的一些用户体会吧,也算是对自己过去三年一项重要工作的总结。

使用Pull模型来实现前端的业务逻辑

2019-12-31
阅读 2 分钟
1.8k
写在前面 最近在总结自己在业务开发中遇到的问题,经过思考,发现了一个可能值得总结一下的点:使用Pull模型来实现业务逻辑。 背景 先不管什么是Pull模型,我们先来看下面的场景: 有一个异步操作A,A完成后,需要根据A返回的结果,再进行下一步的业务逻辑。 一种很常见的实现方式是: {代码...} 这种实现方式没有什么大...

【译】JavaScript和TypeScript中的void

2019-10-10
阅读 2 分钟
2.8k
void在JavaScript中作为运算符存在,在TypeScript中作为基本类型存在。在JS和TS中,void的用法和大多数人习惯的有所不同。

【译】JavaScript工作原理:V8编译器的优化

2019-10-07
阅读 5 分钟
3.2k
原文链接:[链接]原文标题:How JavaScript works: Optimizing the V8 compiler for efficiency 本文首发于公众号:符合预期的CoyPan

【译】 JavaScript中按位操作符的有趣应用

2019-08-21
阅读 13 分钟
2.2k
原文标题:Interesting use cases for JavaScript bitwise operators原文地址:[链接] 本文首发于公众号:符合预期的CoyPan

你可能不知道的LocalStorage用法

2019-08-13
阅读 3 分钟
9.3k
写在前面 本文首发于公众号:符合预期的CoyPan 上周在看关于react-redux的一个在线ppt时,偶然发现了一个现象: 如果我开两个浏览器tab,同时访问这个页面,我在其中一个页面切换ppt,另外一个页面会跟着变化。链接在这里: [链接] 效果如下: 研究了一下,这个效果其实就是用localStorage来实现的。 localStorage基本知...

浏览器什么时候会发起网络请求,去加载一张图片?

2019-07-23
阅读 3 分钟
4.1k
写在前面 本文首发于公众号:符合预期的CoyPan 浏览器在什么时候会去加载一张图片呢?当然是我们网页中有图片的时候。在平时的项目开发中,我们还常常会用图片进行日志上报,大概像下面这样: {代码...} 新建一个Image,将其src赋值,浏览器便会发出一个网络请求。 再来考虑一下下面的代码: {代码...} 上面的代码会发起...

内联JavaScript应该放在HTML的哪个位置

2019-07-23
阅读 4 分钟
9.7k
内联JavaScript在现在的前端项目中是比较常见的,比如一些全局函数,全局统计逻辑等,我们可能会以内联JavaScript的方式写在HTML里。那么,内联JavaScript最好应该放在哪里呢?

<link>标签的几个用法,帮助提高页面性能

2019-06-03
阅读 4 分钟
6.8k
写在前面 本文首发于公众号:符合预期的CoyPan HTML 中&lt;link&gt;元素规定了外部资源与当前文档的关系。最常见的用法,是用来链接一个外部的样式表,比如: {代码...} link标签还能做一些其他的事情,来帮助我们提高页面性能。 link标签的使用 来看一下link标签除了链接外部样式表之外的一些使用场景。 DNS Prefetch D...

【译】使用"BinaryAST"加快JavaScript脚本的解析速度?

2019-05-30
阅读 5 分钟
2.8k
web应用的表现,越来越受制于启动时间。我们已经习惯于使用大量的JavaScript代码来开发丰富的web交互体验。从HTTPArchive上,我们可以看到,一个移动设备平均会加载350KB的JavaSript代码,10%的页面会加载超过1MB的JavaScipt代码。复杂的交互会使得这个数字越来越高。

【JS基础】从JavaScript中的for...of说起(下) - async和await

2019-04-16
阅读 7 分钟
4.4k
写在前面 本文首发于公众号:【符合预期的CoyPan】 在上一篇文章中,梳理了javascript中的两个重要概念:iterator和generator,并且介绍了两者在异步操作中的应用。 【JS基础】从JavaScript中的for...of说起(上) - iterator 和 generator 在异步操作中使用iterator和generator是一件比较费劲的事情,而ES2017给我们提供...

【JS基础】从JavaScript中的for...of说起(上) - iterator 和 generator

2019-04-08
阅读 6 分钟
2.2k
上面的代码中,用for...of来遍历一个数组。其实这里说遍历不太准确,应该是说:for...of语句在可迭代对象(包括 Array,Map,Set,String,TypedArray,arguments 对象等等)上创建一个迭代循环,调用自定义迭代钩子,并为每个不同属性的值执行语句。

一次完整的react hooks实践

2019-03-11
阅读 6 分钟
3.8k
写在前面 本文首发于公众号:符合预期的CoyPan React在16.8版本正式发布了Hooks。关注了很久,最近正好有一个小需求,赶紧来试一下。 需求描述 需求很简单,部门内部的一个数据查询小工具。大致长成下面这样: 用户首次访问页面,会拉取数据展示。输入筛选条件,点击查询后,会再次拉取数据在前端展示。 需求实现 使用Re...

service worker轻度探索 - 解决运营活动需求中的图片加载问题?

2019-03-04
阅读 5 分钟
4.5k
做过运营活动需求的同学都知道,一般一个运营活动中会用到很多的图片资源。用户访问首页时,都会看到一个loading态,表示页面正在加载所需的所有图片资源。像下面这样:

canvas中的拖拽、缩放、旋转 (下) —— 代码实现

2019-02-15
阅读 5 分钟
8.7k
写在前面 本文首发于公众号:符合预期的CoyPan demo体验地址及代码在这里:请用手机或浏览器模拟手机访问 上一篇文章介绍了canvas中的拖拽、缩放、旋转中涉及到的数学知识。可以点击下面的链接查看。 canvas中的拖拽、缩放、旋转 (上) —— 数学知识准备。 代码准备 - 如何在canvas中画出一个带旋转角度的元素 在canvas中...

前端基础 — Web事件总结

2019-01-14
阅读 4 分钟
2.9k
本文首发于公众号:符合预期的CoyPan web中的事件 事件并不是JavaScript的核心部分,他们是在浏览器的Web Api中定义的。下面列举的几种情况,都属于发生了事件。 用户在某个元素上点击鼠标或悬停光标。 用户在键盘中按下某个按键。 用户调整浏览器的大小或者关闭浏览器窗口。 一个网页停止加载。 提交表单。 播放、暂停...

从一次重写原生方法遇到的坑,总结一下Web中的事件系统

2019-01-14
阅读 4 分钟
5.4k
写在前面 前段时间,我写过一篇文章前端开发中的Error以及异常捕获。 在文章中,我提到了这个问题: 经过不断探索(不想再喷自己了),我找到了原因。下面一一道来。本文主要讲解自己找问题原因的思路,如果想看结论和总结,请直接跳到文末。 问题复现 我是在自己以前的项目中测试addEventListener的重写的。这里直接上精...

使用<a>标签时,你可能会忽略的一个安全问题

2019-01-10
阅读 3 分钟
6.2k
本文首发于公众号: 符合预期的CoyPan本文章翻译于:[链接]原标题为:Prevent Sending HTTP Referer Headers from Your Website

前端开发中的Error以及异常捕获

2019-01-02
阅读 11 分钟
11.3k
在前端项目中,由于JavaScript本身是一个弱类型语言,加上浏览器环境的复杂性,网络问题等等,很容易发生错误。做好网页错误监控,不断优化代码,提高代码健壮性是一项很重要的工作。本文将从Error开始,讲到如何捕获页面中的异常。文章较长,细节较多,请耐心观看。

package.json的所有配置项及其用法,你都熟悉么

2018-12-25
阅读 4 分钟
13.5k
在前端开发中,npm已经是必不可少的工具了。使用npm,不可避免的就要和package.json打交道。平时package.json用得挺多,但是没有认真看过官方文档。本文结合npm官方文档以及自己平时使用过程中的感悟,谈一谈package.json。官方文档在这里。

关于JavaScript, NPM官方发布了2018年的回顾以及2019年的预测

2018-12-22
阅读 5 分钟
4.6k
原文标题:This year in JavaScript: 2018 in review and npm’s predictions for 2019本文翻译自NPM官方发布的一份报告。原文链接点击这里

前端开发中,滑动展现日志麻烦?这个组件来帮你

2018-12-20
阅读 3 分钟
4.1k
在这个数据无比重要的时代,用户在网页上面的一系列操作,都需要用数据记录下来。在一个网页中,某个元素的点击数,展现数可以说是最基本的指标了。点击数很简单,用户点击的时候,上报一条点击日志即可。但是展现日志,就稍微麻烦一点了。特别是对于必须要上下滑动页面才会出现的元素。滑动展现的场景,在feed流形式的...

手把手教你开发一个babel-plugin

2018-09-19
阅读 6 分钟
11.8k
在最近的开发过程中,不同的项目、不同的页面都需要用到某种UI控件,于是很自然的将这些UI控件拆出来,单独建立了一个代码库进行维护。下面是我的组件库大致的目录结构如下:

工作中使用javascript的一些小结

2018-07-01
阅读 3 分钟
1.6k
在前端项目日益复杂的今天,早已不再是后端吐出数据,前端直接展示就行了。一些计算是需要放在前端进行的。前端要进行计算,那么变量的类型在整个过程中,就必须是明确的。不然很容易出一些bug。举个最简单的例子,

SVG的粗谈

2018-06-26
阅读 3 分钟
3.8k
svg是XML语言的一种形式。SVG可以通过定义必要的线和形状来创建一个图形,也可以修改已有的位图,或者将这两种方式结合起来创建图形。图形和其组成部分可以变形,可以合成,还可以通过滤镜完全改变外观。可能不太准确的简单来说,"就是可以绘图的html"。

highcharts: 如何解决「移动端将图表旋转90度,tooltip表现不正常」?

2018-06-11
阅读 6 分钟
5.2k
在项目中使用highcharts是很容易的,移动端也适配的不错,按照官网教程即可。但是在移动端,由于手机端屏幕太小,需求方希望可以弄一个全屏图,把手机横过来观察曲线。