摘要:
microtask 这一名词是 JS 中比较新的概念,几乎所有人都是在学习 ES6 的 Promise 时才接触这一新概念,我也不例外。当我刚开始学习 Promise 的时候,对其中回调函数的执行方式特别着迷,于是乎便看到了 microtask 这一个单词,但是困难的是国内很少有关于这方面的文章,有一小部分人探讨过不过对其中的原理和机制的讲解也是十分晦涩难懂。直到我看到了 Jake Archibald 的文章,我才对 microtask 有了一个完整的认识,所以我便想把这篇文章翻译过来,供大家学习和参考。 阅读全文
摘要:
相信许多同学才学习 JS 的时候都会接触到异步这一概念,许多人会使用异步,但是对异步的原理却一知半解,许多 JS 工程师甚至工作了一两年对 JS 事件循环的机制还很模糊。本篇文章是 JS 事件循环系列的第一部分,在本篇文章中,我们重点讲解了 JS Event Loop 的运行机制,从底层原理解释了 JS 的异步特性。 阅读全文
摘要:
五种方法讲解三栏布局(圣杯布局、双飞翼布局、Flex 布局、绝对定位布局、表格布局) 阅读全文
摘要:
本文不是一篇 JavaScript 模块化或者 RequireJS 的教程,只是从 RequireJS 的源码来剖析了动态加载脚本和处理异步的思想,如果你想阅读一篇有关 RequireJS API 的文章,那么这并不适合你,如果你对 RequireJS 加载脚本和处理回调的原理感兴趣,那么本篇文章一定适合你。 阅读全文
摘要:
最近突然看到了有关图片懒加载的问题,大致意思就是初始状态下页面只加载浏览器可视区域的图片,剩余图片在当浏览器可视区域滚动到其位置时才开始加载。貌似现在许多大型网站都有又实现懒加载,所以我便就此问题思考了一下。首先第一个问题是浏览器没有相关的 API 方法可以检测某个元素是否在可视区域,那么就只能我们人工计算,所以这里就涉及到了元素长宽,滚动条位置的知识。本文涉及的到的知识有元素长宽 clientWidth/offsetWidth/scrollWidth 的区别、以及 clientTop/offsetTop/scrollTop 的区别,并给了获取元素坐标的源代码。 阅读全文
摘要:
本文总结了冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序 6 大常见排序算法,并使用图文直观的感受排序算法的过程细节。 阅读全文
摘要:
初识 JavaScript 对象的时候,我以为 JS 是没有继承这种说法的,虽说 JS 是一门面向对象语言,可是面向对象的一些特性在 JS 中并不存在(比如多态,不过严格来说也没有继承)。这就困惑了我很长的时间,当我学习到 JS 原型的时候,我才发现了 JS 的新世界。本篇文章讲解了 JavaScript new 操作符与对象的关系、原型和对象关联(也就是俗称的继承)的原理,适合有一定基础的同学阅读。 阅读全文
摘要:
本文以标签过滤样例为题,引入了JS正则表达式否定匹配的方法,进而深入对前瞻表达式进行了详细的研究,适合有一定基础的前端同学学习参考。 阅读全文
摘要:
css垂直居中,css垂直居中一直以来都是一个被炒烂了的话题,正是因为在css2的时代没有官方标准的垂直居中方法,所以才会滋生出五花八门的实现方法。作者结合了实际运用,核心技术思想将各种各样的垂直居中方法浓缩成了5种方法,以便同学们学习和参考。 阅读全文
摘要:
曾几何时,我一直有一个疑问,那些网站上传文件显示进度的功能是如何做到的,我查了一查,HTML和JS当中都没有相关的功能,那么究竟是如何做到的呢?直到后来...... 阅读全文