2016 年的 JavaScript

今天早上看了一篇文章, 名字叫How it feels to learn JavaScript in 2016 。模拟一个新加入项目, 了解过一点ES5和前端开发, 但对 2016 年 JavaScript 变化一无所知的人与作者的对话, 介绍了 2016 年 JavaScript 与前端开发的最新情况。

观整体趋势, JS 和 React 必将成为移动开发和Web前端开发的主流, 如果通过 NodeJs 等框架来写后端, 单单写 JS 就可以成为全栈工程师。 JS 后劲足, 早在 2014 年, 我就听说有人在嵌入式开发中引入了 JS, 因此 JS 变得越来越重要。以下是我看完之后记下的一些点

  • React & React DOM 使用 JSX 语法来写组件, 不再直接使用 HTML
  • Babel 是将 ES6 或 ES2016+ 语法的 JS 转换为旧版本的 JS, 以便浏览器兼容的库
  • ES2016+ 在 ES6 的基础上增加了 async, await 等特性
  • AMD, CommonJS 是 JS 模块化编程的规范, 重点看 这篇文章
  • npm 是一个共有的模块库(包管理), Browserify 将所有依赖的模块打包在一起使用
  • Webpack 搞定 JS 模块合并, Babel 等所有事情
  • HTTP/2 推荐使用多个 HTTP 请求而不是一个, SystemJS 可以将各模块中用到的 JS 分开, 一次请求就会小很多
  • Typescript 将 JavaScript 用作一种强类型语言, Flow 是一种使用 OCaml 写的检查器
  • Ramnda 使用 JS 函数式编程, David Chambers, Erik Meijer 等人
  • Fetch 或者 Fetch polyfill 使用 Promises 做异步编程
  • 需要响应状态变化, 有 Redux, Flux, Flummox 等等

一个简单的总结就是

Code everything in Typescript. All modules that use Fetch compile them to target ES6, transpile them with Babel on a stage-3 preset, and load them with SystemJS. If you don’t have Fetch, polyfill it, or use Bluebird, Request or Axios, and handle all your promises with await

一个项目里面包含了这些的使用, 就是 vue-hackernews-2.0

– end –