FENews

FENews 是由一群热爱技术的前端小伙伴自发组成的团队。团队会定期创作和翻译前端相关的技术文章,同时我们也欢迎外部投稿或加入我们的核心编辑团队。

用 class 写法实现一个 Promise

2019年05月10日    译者:leekk 

本文分析 Promise 特性的了解,完整实现了 Promise 所有功能。

JavaScript 的工作原理:Shadow DOM 的内部结构以及如何构建可封装的组件

2019年05月09日    

Shadow DOM 修复了 CSS 和 DOM。它在网络平台中引入作用域样式。 无需工具或命名约定,即可使用原生 JavaScript 捆绑 CSS 和标记、隐藏实现详情以及编写独立的组件。

React 新特性:调用系统

2019年05月08日    译者:$Jason X 

在现代应用中,用户界面通常必须同时处理多个任务。例如,搜索组件可能需要在提供自动完成结果时响应用户输入,并且 dashboard 可能需要在从服务器加载数据更新图表的同时并将分析数据发送到后端。

Flutter 引擎架构

2019年04月26日  作者:Ian Hickson   译者:隔壁老王S 

Flutter 结合了一个 Dart 框架和一个高性能的引擎。

如何在NodeJS中构建CLI工具

2019年04月24日    译者:riven 

作为开发人员,我们使用 CLI 工具。 从 git 到cloud shells - 我们到处都在使用这些工具。 所以,现在是时候做自己的了。 我们将在此过程中使用 Heroku 的伟大 oclif 框架。

如何在 JavaScript 中克隆数组

2019年04月22日    

学习在 JavaScript 中克隆数组的不同实现

深入浅出 Javascript Decorators 和 AOP 编程

2019年04月17日  作者:繁星   

编程的世界有许多套路,可以让我们的程序设计更加优雅。

V8 团队给 JavaScript 开发者关于代码缓存的建议

2019年04月15日    译者:Aaron Lee 

在这篇文章中,我们将为那些想要更好的利用代码缓存来提高网站启动速度的 JS 开发者提供一些建议。这些建议集中在 Chrome/V8 的代码缓存实现上,但是其他大多数浏览器实现原理基本也是这样的。

GraphQL Schema 设计:构建可演进的 Schema

2019年04月12日    

通过这篇文章的学习,我们将学习到如何设计出可演进的 GraphQL Schema

使用 JavaScript 的 Set 集合提升你代码的性能

2019年04月09日    译者:Aaron Lee 

这篇文章,我们将讨论如何通过 JavaScript 的 Set 使你的代码更快,特别是使它具有扩展性。数组和 Set 的功能存在大量交叉。但是使用 Set 可以带来数组所不具备的运行时优势。接下来,我们将探索这是如何实现的。

在 React Native 中渐进式加载图像

2019年04月02日    

网速是可变的,尤其是当你使用移动设备时。作为开发人员,我们经常忘记,许多用户正在功能较差的设备上以很慢的网速运行我们的应用程序。

如何使用 React Hooks 获取数据?

2019年03月31日    译者:$Jason X 

通过这篇文章你将学会,如何正确使用 React Hooks

V8 发布 v7.4

2019年03月25日    译者:Aaron Lee 

每六周,我们创建一个新的 V8 分支做为我们发布进程的一部分。每一个版本都是在一个新的 Chrome Beta 版本之前从 V8 的 master 分支切出来。今天我们宣布发布最新的 V8 v7.4 分支,在对应的 Chrome 74 Stable 版本发布前的几周,它都将做为 Beta 版本存在。

React Hooks(2019)入门教程

2019年03月25日    译者:青曳 

带你一步步深入React Hooks(new in 16.8),并教你如何用useState和useEffect定制自己的Hook函数

ES6 箭头函数的适用场景

2019年03月24日    译者:highya 

箭头函数(也称作“胖箭头函数”)无疑是 ES6 最流行的特性之一。他们引入了一种编写具体函数的新方式。

V8:抖动优化(Jank Busters)— 第一部分

2019年03月22日  作者:Jochen EisingerMichael LippautzHannes Payer   译者:隔壁老王S 

了解一个事物的历史,有助于让我们了解事物的本质。

JavaScript - Generator-Yield/Next & Async-Await

2019年03月16日    译者:highya 

可以根据用户需求以不同的时间间隔返回多个值,并且可以管理其内部状态的函,如果函数使用 Function* 语法,则该函数称为 generator 函数。

了解JavaScript中的重绘和重排

2019年03月16日    译者:TF 

了解JavaScript中的重绘和重排

巧用 TypeScript(五)---- infer

2019年03月14日    

这是 巧用 TypeScript 系列第五篇,主要讲解条件类型中的 `infer`

V8 v7.4 支持无 JIT 模式

2019年03月14日    译者:Aaron Lee 

V8 v7.4 支持执行 JavaScript,而无需在运行时分配可执行内存。

GraphQL 简介:原理及其使用

2019年03月11日    译者:zhangxinmei 

GraphQL 是 API 的查询语言,它显示了服务器提供的不同类型的数据,然后客户端可以准确地选择它想要的内容

如何在受控表单组件上使用 React Hooks

2019年03月08日    译者:zanzan 

React Hooks 是一个闪亮的新提案,将优化 90% 的 React 代码。 根据 Dan Abramov 的说法,Hooks 是 React 的未来。这听起来不错,但什么是 Hooks,它们将如何帮助我编写更好的代码? 很高兴你这么问。Hooks…

关于JavaScript timer你需要了解的知识

2019年03月06日    译者:Whale 

关于JavaScript计时器你需要知道的全部知识

异步(async)函数和 promise 性能优化

2019年03月04日    译者:Aaron Lee 

JavaScript 的异步处理一直被认为不够快。更糟糕的是,调试实时的 JavaScript 应用程序,特别是 Node.js 服务器,并非易事,特别是涉及到异步编程时。幸运的是,这个现象正在被改变。这篇文章将介绍我们是如何在 V8 (有一些其他的 JavaScript 引擎也一样) 中优化异步函数和 promise 的,还有我们如何提升异步代码的调试体验。

JavaScript 中的计算机科学:双向链表

2019年02月28日    译者:highya 

在 Javascript 中实现双向链表。

setState如何知道该做什么?

2019年02月26日    译者:$Jason X 

setState如何知道该做什么?

Chrome 中 JavaScript 加载优先级

2019年02月23日    译者:Aaron Lee 

知道浏览器如何调度和执行脚对 web 性能的优化有着很大的帮助。

为 JavaScript 开发者准备的 Flutter 指南

2019年02月22日    译者:Necros 

Flutter 是一款跨平台的移动应用 SDK,可通过同一套代码构建高性能,高保真的 iOS 和 Android 应用。

「译」使用状态机管理获取的数据

2019年02月20日    译者:$Jason X 

使用状态机管理获取的数据

V8 release v7.3

2019年02月18日    译者:riven 

每6个星期创建一个新的分支作为 V8 发布过程的一部分。每个版本都是在 Chrome Beta 里程碑之前基于 v8 的 git master 分支。2月7日发布了新版本--v7.3,该版本在几周内与 Chrome 73 Stable 协同发布之前一直处于测试阶段。V8的v7.3充满了各种面向开发人员的好东西。这篇文章提供了一些亮点的预览

GraphQL入门指南

2019年02月14日    译者:zhangxinmei 

GraphQL是Facebook开发的一种开源查询语言。它为我们提供了一种更有效的方法来设计、创建和使用我们的API,可以说它是REST的替代品

关于 FENews 在 2019 的规划

2019年02月05日  作者:Aaron Lee$Jason XNecrosTFhighya   

FENews 成立的初衷是一起学习交流,并把我们的学习过程和经验分享给大家。我们会定期原创或翻译前端相关的技术文章,未来我们可能由于自己理解的原因或者什么其他原因而犯错,希望大家能够纠正我们。如果你对我们感兴趣或想加入我们欢迎随时联系。

JavaScript 性能测试- 比较 for/ forEach/ map/ reduce/ filter/ find

2019年02月01日    译者:zanzan 

我们都知道 for 循环比 forEach 或者 JavaScript 函数 map / reduce / filter / find 都要快,因为for没有任何额外的函数调用栈和上下文。

为什么 'XX' 不是一个 Hooks API?

2019年01月31日  作者:Dan Abramov   译者:隔壁老王S 

我们可以这样做,但并不是意味着我们应该这样做。

Orinoco: V8的垃圾回收器

2019年01月29日  作者:Peter Marshall   译者:隔壁老王S 

过去这些年 V8 的垃圾回收器发生了很多的变化,从一个 `stop-the-world` 垃圾回收器变成了一个更加并行,并发和增量的垃圾回收器。