编程语言:JavaScript
v8 执行 js 的过程
本文意在简单的介绍一下 V8 执行 JS 的过程,通过了解 V8 执行 JS 的过程,知道 JS 代码呈现在浏览器上到底做了什么。
JavaScript引擎深入剖析(一):JSValue 的内部实现
在我们 Hummer 跨端技术框架 的研发过程中,不可避免会对 JavaScript 引擎有所探索和研究。只有深入了解了 JavaScript 的工作原理,才能在跨端研发的诸多细节上避免踩坑,并且做出更好地调优工作。对于很多前端同学来说,JavaScript 引擎就像一个难以触及的黑盒,既熟悉又陌生,因为它被内置在了浏览器内核中。即使在平时开发过程中天天和 JavaScript 引擎打交道,但大多也只是知道 JavaScript 引擎可以解释执行 JavaScript 代码,对于其内部实现原理并不是特别了解。所以我们接下来会专门花几个专题,来深入剖析一下 JavaScript 引擎的世界,逐步揭开它的神秘面纱。这一期我们主要讲一下 JavaScript 引擎中的 “JSValue 的内部实现”。
Draft.js 在知乎的实践
Draft.js 适合用来解决知乎 Web 端富文本相关的问题,场景包括:
- 提问/回答/写文章这类带格式、段落的文本;
- 支持 @、超链接的评论;
- 支持换行的个人简介、私信。
JavaScript 中如何实现大文件并行下载?
在 JavaScript 中如何实现并发控制? 这篇文章中,阿宝哥详细分析了 async-pool 这个库如何利用 Promise.all 和 Promise.race 函数实现异步任务的并发控制。本文阿宝哥将介绍如何利用 async-pool 这个库提供的 asyncPool 函数来实现大文件的并行下载。
相信有些小伙伴已经了解大文件上传的解决方案,在上传大文件时,为了提高上传的效率,我们一般会使用 Blob.slice 方法对大文件按照指定的大小进行切割,然后在开启多线程进行分块上传,等所有分块都成功上传后,再通知服务端进行分块合并。
那么对大文件下载来说,我们能否采用类似的思想呢?在服务端支持 Range 请求首部的条件下,我们也是可以实现多线程分块下载的功能。
浅探 Web Worker 与 JavaScript 沙箱
探索基于 Web Worker 实现 JavaScript 沙箱隔离方案过程中的一些资料收集、理解以及我的踩坑和思考的过程。
用 65 行代码实现 JavaScript 动画序列播放
最近在给学生上课,上周六的第一堂课是关于 JavaScript 动画的内容,其中包括一些简单的动画,比如匀速或者匀加/减速的运动,也包括复杂一些的组合动画。而动画的基本原理,在我之前的文章[1]已经有了详细的介绍。在这里,我想谈一谈的是,我们可以如何针对现代浏览器设计更加简单的 API,来实现动画的序列播放。
图文并茂讲清楚 JavaScript 内存管理
大多数讲JS内存管理的文章都大同小异(无非到处抄下堆和栈的定义),但这篇文章图文并茂,还有结合了内存泄露问题一起阐述,还有些新意。
用JS解释JS!详解AST及其应用
当我们查看目前主流的项目中的 devDependencies,会发现各种各样的模块工具。归纳一下有:JavaScript转译、css预处理器、elint、pretiier 等等。这些模块我们不会在生产环境用到,但它们在我们的开发过程中充当着重要的角色,而所有的上述工具,都建立在 AST 的基础上。
浅析JavaScript函数式编程
随着React的流行,函数式编程在前端领域备受关注。尤其近几年,越来越多的类库偏向于函数式开发:lodash/fp,Rx.js、Redux的纯函数,React16.8推出的hooks,Vue3.0的composition Api...同时在ES5/ES6标准中也有体现,例如:箭头函数、迭代器、map、filter、reduce等。
关于 JavaScript Object.keys() 排序问题的探索
由业务 bug 引发的疑问-- Object.keys() 的排序机制是什么样的?
使用JavaScript开发一个Photoshop插件
本文将引导大家使用JavaScript开发一个Photoshop插件。
JavaScript 事件循环:从起源到浏览器再到 Node.js
为什么是事件循环?事件循环是什么?浏览器与 Node.js 的事件循环差异......
京东扫描平台EOS—JS扫描落地与实践
京东零售在检查前端编码规范及编码质量过程中的一些实践。
设计一个JavaScript插件系统
软件的扩展性
谈谈微前端领域的js沙箱实现机制
微前端领域核心技术解析,那些巧妙的沙箱设计
如何打造一款标准的JS SDK?
设计原则及实现技巧。