编程语言:JavaScript
Web Scraping via Javascript Runtime Heap Snapshots
In recent years, the web has gotten very hostile to the lowly web scraper. It's a result of the natural progression of web technologies away from statically rendered pages to dynamic apps built with frameworks like React and CSS-in-JS. Developers no longer need to label their data with class-names or ids - it's only a courtesy to screen readers now.
There's also been a concerted effort by large companies to protect their public data. Facebook, for example, employs a team of over 100 people to make sure it is as difficult as possible for any data to escape the black hole. Granted, some of these large companies do offer APIs for their data but rarely is this unrestricted. You're usually at the whim of their app review process or granted access only to a partial view of the data. Data that would be otherwise public if you were to do a Google search and click through to their website manually.
This can be frustrating if you're like me - somebody who wanted to build a small, local, non-profit app that uses data hosted on a closed platform. The data is public but completely inaccessible to machines because of aggressive anti-web-scraping measures. That gave me two options - input the data manually or play the web-scraping game. Of course, I chose the latter.
逆向进阶,利用 AST 技术还原 JavaScript 混淆代码
AST Babel 入门手册,手把手带你还原 JS 混淆代码,让你逆向如虎添翼!
如何避免 JavaScript 中的内存泄漏?
SPA(单页应用程序)的兴起,促使我们更加关注与内存相关的 JavaScript 编码实践。如果应用使用的内存越来越多,就会严重影响性能,甚至导致浏览器的崩溃。下面就来看看JavaScript中常见的内存泄漏以及如何避免内存泄漏。
Faster JavaScript Builds with Metro
How Airbnb migrated from Webpack to Metro and made the development feedback loop nearly instantaneous, the largest production build 50% faster, with marginal end-user runtime improvements.
JS中Object的keys是无序的吗
在最开始学习 JavaScript 时,我一直被灌输 Object 中的 Key 是无序的,不可靠的,而与之相对的是 Map 实例会维护键值对的插入顺序。
「But,Object 的键值对真的是无序的吗?」实际上在 ES2015 以后,Object.keys 的规则变了,在一些现代的浏览器中,keys 输出顺序是可以预测的!
How to Create an Animated GIF from Custom Canvas Frames with Client-side JavaScript
An overview of the creation process which involves merging multiple canvas frames into a single GIF file.
通过JS获取你当前的网络状况
想要在Web端检测网速,其实很简单,有一个全局的对象——navigation。
V8 JS AOT化的探索与实践
本分享将结合目前集团内自有业务形态,以及 JS 在 Web 中的执行过程,介绍JS AOT是如何设计和实现的,以及能给业务带来哪些收益。
实现在浏览器中import内联JS模块
现代浏览器支持了ES Modules,也就是浏览器原生支持的 JavaScript 模块化方案。虽然考虑兼容性,我们还很少能够把 ES Modules 用于生产环境,但是在开发、测试、学习的场景中,ES Modules 发挥了越来越大的作用,比如构建工具Vite,就利用 ES Modules 来快速提供开发调试环境。React 和 Vue 框架的学习中,也都可以利用 ES Modules 不用安装本地构建工具,直接在浏览器上体验这些现代框架。
优化 JS 程序的一个小方法
你真的知道如何优化 JS 程序吗?
深入理解 JavaScript 中的继承原理
绝大多数的面向对象语言都有类的概念,并且这些语言也都是通过类来实现继承的。而 JavaScirpt 中是没有类这个概念的,在 JavaScript 中实现继承要比其他语言中复杂的多。本文将分享如何在 JavaScript 中实现继承。
JavaScript执行机制
对于服务端编译来说,WebAssembly是个不错的选择。然而,它没办法替代 JavaScript。对于 JS,更合适的方法是最大化代码缓存。
你必学的Vue.js的进阶教程
Vue.js 以其简单易用的特点而被广泛使用,本篇文章将会重点介绍在 Vue.js 应用中的一些 API 使用方法和使用场景,希望能给你带来一些帮助。
JavaScript 单行代码杀手锏
在本文章中我们要分享JavaScript单行代码杀手锏,可以让工作更有效率哦。
每个 JavaScript 开发者都应该了解的 Unicode
Unicode 是一个通用且优雅的标准。但由于那一大堆的抽象术语,坚持深入学习其实还是挺艰难的。
由 JavaScript 的 with 引发的探索
都说 with 会有问题,那么是什么问题,是怎样导致的呢?知其然不知其所以然,在好奇心的驱使下,从 with 出发,一路追溯到 VO、AO。