网络埋伏纪事 发布于 12月15, 2017

【译】JavaScript:核心 - 第二版

原文地址:http://dmitrysoshnikov.com/ecmascript/javascript-the-core-2nd-edition/

译者注:Dmitry Soshnikov是Facebook软件工程师,ECMAScript理论家。他编写的《ECMAScript in detail》系列文章是对ECMAScript规范最优秀的解析,已经被翻译成多国语言(包括中文)。


这是JavaScript:核心概述讲稿的第二版,致力于ECMAScript编程语言及其运行时系统的核心组件。

目标人群:有经验的程序员、专家。

本文的第一版涵盖了JS语言的通用方面,主要讲解了旧式ES3规范中的概念,并参考了在ES5和ES6(即ES2015)中的一些变化。

从ES2015开始,规范修改了一些核心组件的描述和结构,引入了新的模型等等。所以在这个版本中,我们会关注较新的概念以及更新了的术语,但是依然保留在规范各个版本中保持一致的最基本的JS结构。

本文涵盖了ES2017+运行时系统。

注:ECMAScript规范的最新版本可以在TC-39网站上找到。

我们从讨论ECMAScript最基础的概念对象开始。

阅读全文 »

dz 发布于 09月11, 2017

【译】关于Babel6的6个变化

原文链接:http://jamesknelson.com/the-six-things-you-need-to-know-about-babel-6/

近年来Babel已经成为一种将ES2015和JSX转化为传统JavaScript代码的必备工具。但是Babel6相对以前的版本改变巨大。以前的babel包已经废弃了,直接运行babel已经没办法将ES2015转化为ES5,以前的文档也下架了。

但是不要慌,为了让你跟上变化,我整理了6大重要的变化清单,如果你觉得还不够,可以参考我的文档ES6和Babel6完全指南手册,里面覆盖了大量的实践,还有CLI, Webpack, Mocha和 Gulp等知识点。

阅读全文 »

网络埋伏纪事 发布于 08月24, 2017

【译】JavaScript工作机制:V8 引擎内部机制及如何编写优化代码的5个诀窍

原文:http://www.zcfy.cc/article/4033

几周前,我们开始写旨在深入挖掘JavaScript及其工作机制的一系列文章:我们认为,通过了解JavaScript的构造单元以及这些构造单元如何组织在一起,您就能够编写更好的代码和应用程​​序。

该系列的第一篇文章重点是提供一个对引擎、运行时和调用栈的概述。这第二篇文章将会深入Google V8 JavaScript引擎的内部。我们还将提供如何编写更佳 JavaScript 代码的一些小技巧 - 这也是我们 SessionStack 开发团队在构建产品时遵循的最佳实践。

阅读全文 »

网络埋伏纪事 发布于 08月24, 2017

【译】JavaScript工作机制:第1部分

原文:http://www.zcfy.cc/article/3965

随着JavaScript越来越受欢迎,开发团队正在将其用在技术栈的各个方面,包括 - 前端、后端、混合应用、嵌入式设备等等。

GitHut统计所示,JavaScript在GitHub中的活动存储库和总推送方面位于前列,在其他方面也不差。

查看最新的GitHub语言统计信息)。

如果项目越来越依赖于JavaScript,这意味着开发人员必须更深入地了解内部机制,才能利用语言和生态系统提供的所有技术,构建出惊艳的软件。

事实证明,虽然有很多开发人员每天都在使用JavaScript,但并不知道它的工作机制。

阅读全文 »

dz 发布于 07月08, 2017

为什么我们需要中间件来处理redux的异步流

原文地址: StackOverFlow - Why do we need middleware for async flow in Redux?

官方文档说:如果不用中间件middleware,Redux store只支持同步数据流。 我不太明白为什么,为什么不能在组件中直接调用异步API,然后dispatch action?

例如:一个只有一个输入框和按钮的UI,用户点击按钮,然后从远程抓取数据填充到该输入框。

阅读全文 »

网络埋伏纪事 发布于 06月19, 2017

CSS 中不为人知的部分

原文地址:https://madebymike.com.au/writing/the-invisible-parts-of-CSS/

如果你在日常工作中使用 CSS,你的主要目标可能会重点围绕着使事情“看起来正确”。如何实现这一点经常是远不如最终结果那么重要。这意味着比起正确的语法和视觉结果来说,我们更少关心 CSS 的工作原理。

CSS 的视觉结果通常是操作隐藏属性的间接后果,你可能还没有意识到这一点。某些 CSS 属性(比如 background-color)与你看到的内容有直接而明显的关系。同时,其它像 display 这样的属性对于我们很多人来说仍然是模棱两可的,因为结果似乎与上下文环境有很大关系。

我怀疑很多开发人员都不能用简单的术语描述设置 display: block 实际上是在做什么,顶多可能对这种属性如何工作有一些直观的了解。没关系,你可以在不了解底层原理的情况下,就能 CSS 瞎嚷嚷。不过,那也是只知其一,不知其二。

如果这就是在说你,没关系。我也是在学会如何使用 CSS 很久以后,才理解 CSS 的工作原理。我猜这并不能让你好受点,不过至少你并不是一个人在战斗!

CSS 的底层特性是复杂而有意抽象的,但我们也不能完全不了解它们。对于我们很多人来说,或多或少都会熟悉像盒模型、层叠和特殊性这些概念。虽然它们经常被曲解,但是懂点这些概念的工作原理有助于我们编写更好的 CSS。

对于 CSS 的很多其它隐藏部分也可以这样说。问题是更好地理解这些部分的门槛更高。经常会感觉好像没有什么能孤立地解释。需要先了解所有内容,然后才能理解流程的最小部分。

因此,我想尝试揭示一些 CSS 不为人知的部分,仅触及你需要知道的内容,并希望以逻辑顺序解释该过程,以便更好地理解 CSS 的实际工作原理。

这是一篇很长的文章,所以如果你想跳过这些部分之一,我完全可以理解。

阅读全文 »