小程序实现原理解析
「微信小程序」剖析(二):框架原理 | 在浏览器上运行的猜想
运行环境差异
移动 Web 开发之浏览器
Blink 引擎相对于 WebKit 好在哪里?
《微信小程序架构解析》丨 NOTES
微信安卓端小程序逆向分析–它山之石可以攻玉
事件 DOMContentLoaded 和 load 的区别
他们的区别是,触发的时机不一样,先触发 DOMContentLoaded 事件,后触发 load 事件。
DOM 文档加载的步骤为
- 解析 HTML 结构。
- 加载外部脚本和样式表文件。
- 解析并执行脚本代码。
- DOM 树构建完成。//DOMContentLoaded //jQuery.ready
- 加载图片等外部文件。
- 页面加载完毕。//load
在第 4 步,会触发 DOMContentLoaded 事件。在第 6 步,触发 load 事件。
JS 事件循环资料集合
- 深入探究 eventloop 与浏览器渲染的时序问题
- JavaScript 运行机制详解:再谈 Event Loop
- Event Loop 的规范和实现
- 深入理解 js 事件循环机制(Node.js 篇)
- 深入理解 js 事件循环机制(浏览器篇)
- 理解事件循环一 (浅析)
- 理解事件循环二 (macrotask 和 microtask)
- JavaScript 并发模型与 Event Loop
- Event Loop 中的 microtask 与 macrotask
- HTML 系列:macrotask 和 microtask
- 聊聊 JavaScript 与浏览器的那些事 - 引擎与线程
- js 引擎与 GUI 引擎是互斥的
display: none 和 visibility: hidden 的区别
细说 javascript 的数据类型
现在出来写前端有一段时间了,现在来回头看看,当初大学刚学搞前端的时候,为了快速适应新的语言,直接看后面的内容去了,跳过了基本数据类型的介绍,想当然的觉得 javascript 的数据类型应该也跟其他弱类型语言差不了太多,从而忽略了基本数据类型上的细节。最近随着对 js 语言了解和应用的加深,发现 js 的基本数据类型里面真的大有文章,甚至有不少的语言设计缺陷在里面。所以我打算专门写一篇关于基本数据类型的文章,专门来谈谈 js 在基本数据类型上的这些设计和缺陷。
从数组去重来看 javascript 的进化
说到 javascript 数据去重,估计所有做前端的都并不陌生
数组去重的算法即使在实际生产中不一定用的多,但是在面试中几乎成为了必考的题目
这是一个神奇的题目,看上去好像是死的,应该已经没有什么发挥空间了
但事实上它随着 ECMAScript 标准的发展,数据去重的实现反倒是在不断变化
许多公司甚至可以单从一个数组去重直接看出一个前端工程师的大致水平
今天我也来说说我所知道的 javascript 数组去重吧
从 webpack 1 到 webpack 2 的迁移记
最近上手新项目的时候想要用个 sass,结果发现 npm 里面的 sass-loader 默认的 peerDependencies 中的 webpack 版本被升级到了 2
当时没想太多,就装了个 webpack 2.2.1 来用,结果发现以前项目的 webpack 配置居然不能够直接用!一跑起来一还堆错
上网查了下,才知道 webpack 2 弄了很多 breaking changes ,想着反正这些问题迟早要解决的,于是就开始了我的 webpack 2 踩坑过程
原生 js 中的各种宽高以及位置的获取
最近在用原生的 js 来实现一些交互特效,写的时候发现这些宽度和高度的获取真的是太常用了
而且获取他们的方法不止一个两个,上网一搜发现有好多,看得我眼花缭乱的
于是我自己做了一个归纳,方便以后快速查阅
对于移动端,一般要统一初始化视口宽高缩放比例