主题: Javascript workflow
分享人: 刘义
时间: 2016年11月11日
内容
Javascript 标准
ECMAScript
1996年11月,JavaScript的创造者Netscape公司,决定将JavaScript提交给国际标准化组织ECMA,希望这种语言能够成为国际标准。
次年,ECMA发布262号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript,这个版本就是1.0版。
因此,ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现(另外的 ECMAScript 实现还有早期微软的 Jscript)。
ES6
ECMAScript 6.0(简称ES6)是JavaScript语言的下一代标准。
它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。
ES6的第一个版本已经在2015年6月正式,正式名称就是《ECMAScript 2015标准》(简称ES2015)。
2016年6月,小幅修订的《ECMAScript发布了 2016标准》(简称ES2016)如期发布,这个版本可以看作是ES6.1版。
-
ES6
- var/const/let
- class
- =>
- for...of
- Promise
- collections (maps, sets and weak maps)
- generators and generator expressions
- binary data
- typed arrays
- number and math enhancements
- reflection
- proxies (metaprogramming for virtual objects and wrappers)
-
Javascript.next
- Decorator(Java: Anotation(注解), C#: Attribute(特征))
ES6+ 兼容性问题
浏览器 ES6 部署进度
目前主流的浏览器(Edge/Chrome/Firefox/Safari),运行时环境(nodejs)的最新版本都已经实现了 95% 以上 ES6 的新语法,
可以放心大胆的使用。
不过仍然有诸多浏览器只支持,或者支持的不完整。为了保证我们的应用在运行时不会出现问题,我们需要对这类浏览器进行兼容。
- polyfill
- 通过添加类似补丁的代码,模拟出 ES6 的环境
- babel-polyfill
- ES6 -> ES5
- 将 ES6 转码到 ES5。
- babel/Tracuer
- 通过实际行动,抵制落后浏览器
js 工具
- gulp
- babel
- rollup/webpack/browserify
- 使用
js 复用
- 年轻人的第一个 javascript package
js 工程化
- laravel-elixir(gulp + babel + rollup/webpack/browserify)
- 如何完成 js 自动构建,发布。