【译】The story of a V8 performance cliff in React

2019-10-10
阅读 10 分钟
1.3k
前言 前往 ➡️ 我的博客 本文是根据自己的理解翻译而来,如有疑惑可查看原文The story of a V8 performance cliff in React。 本次暂定翻译三篇文章: JavaScript engine fundamentals: Shapes and Inline Caches(Published 14th June 2018) JavaScript engine fundamentals: optimizing prototypes(Published 16th Augus...

【译】JavaScript engine fundamentals: optimizing prototypes

2019-10-10
阅读 9 分钟
1k
前言 前往 ➡️ 我的博客 本文是根据自己的理解翻译而来,如有疑惑可查看原文 JavaScript engine fundamentals: optimizing prototypes。 本次暂定翻译三篇文章: JavaScript engine fundamentals: Shapes and Inline Caches(Published 14th June 2018) JavaScript engine fundamentals: optimizing prototypes(Published ...

【译】JavaScript engine fundamentals: Shapes and Inline Caches

2019-10-10
阅读 9 分钟
1.2k
JavaScript 引擎原理:外形与内联缓存 前言 前往 ➡️ 我的博客 本文是根据自己的理解翻译而来,如有疑惑可查看原文 JavaScript engine fundamentals: Shapes and Inline Caches。 本次暂定翻译三篇文章: JavaScript engine fundamentals: Shapes and Inline Caches(Published 14th June 2018) JavaScript engine fundame...

前端架构碎碎念

2019-09-14
阅读 4 分钟
1.3k
最近看了一些关于前端架构相关的书籍和博客,觉得有点自我膨胀了,竟然想对着前端架构这一说法指指点点。从跨入这个行业开始,就觉得架构师就是位于技术金字塔的顶端的那拨人,是引导行业或团队技术走向的那拨人。然而从行业上对前端架构的定义和必备的技能来看,觉得前端架构就是一个伪概念,又或是拔高自己身份的幌子。

解剖排序算法

2019-07-21
阅读 5 分钟
926
排序是计算机中对存储的数据执行最常见的操作之一。语法简单,却很精妙。在排序算法中绕不开的是循环,只有在深入学习排序算法时,才发现平时不起眼的循环语句不可小觑。

React+Koa+MongoDB+Docker开发环境

2019-07-06
阅读 4 分钟
2.3k
前言 本次博文依然是对 multi-spa-webpack-cli 的扩充和完善。 集成 mongoose。 集成 Docker 开发环境。 multi-spa-webpack-cli 已经发布到 npm,只要在 node 环境下安装即可。 {代码...} 使用步骤如下: {代码...} 从上面的步骤可以看出,Docker 只需要 3 步就可以启动项目了。 mongoose mongoose 是在 node.js 环境下对...

React脚手架搭建

2019-07-01
阅读 3 分钟
6.7k
之前的 multi-spa-webpack-cli 只是为 React + antd 模板提供了开发时必要的环境,对于实际的开发并没有什么用处。为了更贴近实际开发,本次 React + antd 模板完善了一些功能。

webpack开发环境配置

2019-06-21
阅读 4 分钟
2k
经过不断的调整和测试,关于 react 的 webpack 配置终于新鲜出炉。本次的重点主要集中在开发环境上,生产环境则是使用 webpack 的 production 默认模式。

数据结构的JavaScript描述

2019-06-07
阅读 1 分钟
913
《数据结构与算法JavaScript描述》,有一种花了正版的钱买了盗版的书的感觉。花了点时间整理了一下,可以保证都能跑通。对着截图敲一遍,比复制黏贴效果好。

浅尝webpack

2019-05-19
阅读 7 分钟
1.5k
webpack 自出现时,一直备受青睐。作为强大的打包工具,它只是出现在项目初始或优化的阶段。如果没有参与项目的构建,接触的机会几乎为零。即使是参与了,但也会因为项目的周期短,从网上东拼西凑草草了事。

关于MVVM模式简单代码实现(TypeScript练手小项目)

2019-04-25
阅读 2 分钟
2.1k
在写 关于MVC模式简单代码实现 的过程中,觉得最麻烦的就是操作 DOM。所以这次升级了,打算用 React。用过 React 的同学都知道,React 在更新视图时,必须要通过 setState 方式改变状态,这一过程是需要我们主动调用的。而 Vue 是通过对 data 下的变量赋值直接更新了视图,Vue 之所以这么简单,是因为采用了数据劫持的方...

用Type驯化JavaScript

2019-04-17
阅读 7 分钟
1k
好多大厂都在使用 TypeScript,总感觉这玩意不看看都不配做前端了?,看完文档后就梳理了一下。本文来自我的博客这个想法不一定对系列,so,这个想法不一定对?

DIP、IoC、DI、JS

2019-04-01
阅读 6 分钟
1.2k
比如,现在我正在写这篇博客文,但是我得在电脑上编辑,电脑便是我完成这件事的依赖。而在代码中,最直观的体现是模块之间的依赖。如某个模块依赖另外一个模块,那么另外的那个模块就是该模块的依赖。其实在上篇博客文章《JaVaScript中的模块》中,我们也手写了一个模块依赖管理器。

简单聊聊模块

2019-03-24
阅读 2 分钟
1.2k
模块 在 JavaScript 中,模块只不过是基于函数某些特性的代码组织方式。 在《你不知道的 JavaScript》中,给出了模块模式因具备的两个必要条件: 必须有外部的封闭函数,该函数必须至少被调用一次(每次调用都会创建一个新的模块实例)。 封闭函数必须返回至少一个内部函数,这样内部函数才能在私有作用域中形成闭包,并...

从生成器到async/await

2019-03-23
阅读 5 分钟
3.5k
回调是 JavaScript 中最基本的异步模式,就是事先约定好将来要做的事然后回头调用。简单直接,但也存在不信任、调用嵌套过深等问题。对于编写代码、维护代码的我们而言,人类的大脑还是习惯于线性的处理方式。

从迭代器模式到迭代协议

2019-03-20
阅读 3 分钟
1.1k
迭代器模式 迭代器模式是指提供一种方法顺序访问一个聚合对象中的各个元素,而不需要暴露该对象的内部表示。 迭代器分为内部迭代器和外部迭代器。内部迭代器只需一次初始调用,而外部迭代器必须显式地请求迭代下一个元素,这样我们就可以手动控制迭代过程。 实现一个内部迭代器: {代码...} 实现一个外部迭代器: {代码....

实用却易忽视的DevTools调试技巧

2019-03-09
阅读 4 分钟
1.7k
作为前端开发者,免不了要和 DevTools 打交道,熟练的使用 DevTools 能够大大提高我们的工作效率。然而,开发者工具的使用并没有得到足够的重视。

什么是 Promise

2019-03-04
阅读 6 分钟
1.2k
然而事与愿违,回调受到控制反转的影响,把控制权交给了第三方,这种控制转移导致了一系列的信任问题(回调调用过早、回调调用过晚、回调不被调用、回调调用次数过少或过多等问题)。同时,基于回调的异步表达又是无序性的,回调地狱的使用,让我们正确理解代码的难度加大。

前端笔试之手写代码

2019-02-23
阅读 4 分钟
2k
1. 扁平化嵌套数组/flat实现 描述:将嵌套多层的数组展开平铺成只有一层的数组。 {代码...} 方法一: {代码...} 知识点:JSON.parse()/JSON.stringify()、String.prototype.replace() 方法二: {代码...} 知识点:Array.prototype.reduce()、Array.prototype.concat() 方法三: {代码...} 知识点:while、Array.prototyp...

JavaScript异步基础

2019-02-17
阅读 4 分钟
1.1k
在 ECMA 规范的最近几次版本里不断有新成员加入,尤其在处理异步的问题上,更是不断推陈出新。然而,我们在享受便利的同时,也应该了解异步到底是怎么一回事。

浅谈MVC/MVP/MVVM模式(概述)

2019-02-08
阅读 4 分钟
2.4k
最为直观的是,我们在开发者工具 Console 控制台中,输入任何形式的数据并点击 Enter 时,最终会在下方显示出来(前提是输入正确的数据类型和格式)。又或者,我们用某些参数从服务请求一个 JSON 文件,浏览器上就会展示文件内容。数据 => 视图,就是这么简单直接。

在JavaScript中理解策略模式

2019-01-27
阅读 4 分钟
1.8k
设计模式是: 在面向对象软件过程中针对特定问题的简洁而优雅的解决方案. 通过对封装、继承、多态、组合等技术的反复利用, 提炼出可重复使用面向对象的设计技巧.