CSS Solutions

2019-10-24
阅读 9 分钟
1.5k
随着前端项目日益复杂,如何构建可维护、可复用、可配置的CSS代码,成了每个前端工程师都需要思考的问题。问题的本质:CSS最初是为了描述网页样式而被提出的,并不具备编程语言的特性,于是在前端走向工程化的道路上,CSS暴露出一些问题拖了后腿:

异步的JavaScript

2019-03-11
阅读 5 分钟
1.2k
JS本身是一门单线程的语言,所以在执行一些需要等待的任务(eg.等待服务器响应,等待用户输入等)时就会阻塞其他代码。如果在浏览器中JS线程阻塞了,浏览器可能会失去响应,从而造成不好的用户体验。幸运的是JS语言本身和其运行的环境(浏览器,Node)都提供了一些解决方案让JS可以“异步”起来,在此梳理一下相关的知识点,如...

浅谈React Hooks

2019-02-28
阅读 6 分钟
3.2k
在ComponentDidMount、ComponentDidUpdate、ComponentWillUnmount等生命周期中做获取数据,订阅/取消事件,操作ref等相互之间无关联的操作,而把订阅/取消这种相关联的操作分开,降低了代码的可读性;

前端性能之回流与重绘(reflow && repaint)

2018-03-13
阅读 2 分钟
3.1k
写在金三银四之际。 因为种种原因想要谋求新的发展,不得已翻起了尘封已久的高程书;写起了各种经典CSS布局;回顾起记忆略显模糊的几个项目。感慨着太多太多的知识点自己都不够深入甚至缺乏认识,却又不能急功近利,囫囵吞枣。牢骚发完了,苦水吐完了,进入正题。

webRTC——浏览器里的音视频通话

2017-10-29
阅读 4 分钟
14.6k
webRTC是Google在2010年收购GIP公司之后获得的一项技术。如下图所示,它提供了音视频的采集、处理(降噪,回声消除等)、编解码、传输等技术。

JavaScript Debounce&Throttle

2017-09-14
阅读 2 分钟
2.6k
假设现在有个需求:监听滑动事件,并执行回调。当你用触摸板或者鼠标滑动页面时,每秒钟大概会触发几十次scroll事件,而当你在手机等移动终端上滑动页面时,每秒就会触发一百次scroll事件。如果我们的回调函数较为复杂,页面的性能就会变差。

JavaScript数组(ES5&&ES6)

2017-08-31
阅读 4 分钟
2.3k
无论什么编程语言,数组总是用的最多的引用数据类型之一。JS中的数组有些特殊,它不像Java那种强类型语言那样,一个数组只能存放一种类型的数据。JavaScript允许数组中的每一项的数据类型不同。、

JavaScript Promise

2017-08-17
阅读 3 分钟
4.3k
假如需要向后端发送一个请求,并对返回的数据进行操作,可能我们第一时间想到的是回调函数。但如果接着又需要执行第二个、第三个...第n个异步操作,那么回调函数就会一层层的嵌套,严重影响了代码可读性和可维护性。

JavaScript面向对象那些事

2017-07-18
阅读 5 分钟
1.9k
上面的person对象是JS对象的字面量形式,本质上是一个键值对的无序集合,这些键值 对叫做属性。属性的名称只能是字符串形式的,而属性的值可以是字符串、数字、布尔值等基本类型,也可以是数组、函数、对象等引用类型。值得一提的是,如果属性的名称是JS能够识别的标识符,如name、first_name、$name,则在定义属性时不...

浅谈JavaScript中的闭包

2017-07-06
阅读 1 分钟
3.8k
《JavaScript高级程序设计》中写道:“闭包是指有权访问另一个函数作用域中的变量的函数”,如果用下定义的观点看,这句话就是说“闭包是函数”,我带着怀疑的心态又去网上找了找,发现什么说法都有,终究没能明白闭包的含义,还是看代码来得直接。 {代码...} 这段代码就包含一个简单的闭包:outter函数的返回值是一个函数,...

JavaScript分号的省略

2017-07-04
阅读 1 分钟
3.1k
传统的编程语言中分号是不可省略的,但在看JavaScript代码时,新手常常会发现很多知名的大牛们都省略了分号,为什么会这样呢?其实是因为JavaScript的自动插入分号技术,大多数情况下分号是可以省略的,下面说说自动插入分号的规则。

浅谈JavaScript事件

2016-12-30
阅读 1 分钟
2.3k
浅谈JavaScript事件 事件流 JavaScript的事件流有:Netscape提出的捕获流、IE的冒泡流以及DOM2级事件流。这里只讨论DOM2级事件流。 DOM2级事件流有三个阶段:捕获阶段——>处于目标阶段——>冒泡阶段。如图所示: 其实这些阶段都是相对的。真实的过程取决于事件的目标元素以及各目标元素的祖先元素是否有事件处理函数...