ES6——已经普及的前端未来
2017-09-12 00:00
344 查看
ES6——已经普及的前端未来
ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在2015年6月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。
Node 是 JavaScript 的服务器运行环境(runtime)。它对 ES6 的支持度最高。除了那些默认打开的功能,还有一些语法功能已经实现了,但是默认没有打开。使用下面的命令,可以查看 Node 已经实现的 ES6 特性。
$ node --v8-options | grep harmony
复制代码
上面命令的输出结果,会因为版本的不同而有所不同。
现今网上主要流传且大家耳熟能详地代码片段和书籍中,大多都还是基于ES5所构建的前端工程代码,并不是说ES5已经可以被淘汰,但是可以看到,在各大公司招聘前端工程师时,已然悄悄加上一个默认的前提:“熟悉ES6特性和规范”,也就是说,企业级JS开发风暴早已席卷中国互联网行业。
但是,从ES5到ES6,飞跃的不是一星半点儿,为了让ES5前端经验为主的人对ES6规范和特性有更好的理解,我在这里推荐一个前端转码器:Babel。Babel 是一个广泛使用的 ES6 转码器,可以将 ES6 代码转为 ES5 代码,从而在现有环境执行。这意味着,你可以用 ES6 的方式编写程序,又不用担心现有环境是否支持。下面是一个例子。
配置babel的编译环境不仅需要babel相关js库文件,还需要额外在工程目录下配置一个.babelrc文件,这是babel的默认配置文件,用以设计转码规则和插件
当然,babel还支持命令行方式来对所需编译文件进行转码,需额外安装babel-cli工具
然后让我们来看看在ES6中更新的新特性有哪些在实际生产过程中已经被广泛应用:
1) 箭头操作符(lambda模式)
以下面为例:
2) 类的支持
JS本身就是面向对象的,ES6中提供的类实际上只是JS原型模式的包装。
3) 增强的对象字面量
l 可以在对象字面量里面定义原型
l 定义方法可以不用function关键字
l 直接调用父类方法
4) 字符串模板
5) 解构——自动解析数组或对象中的值
6) let与const关键字、for of值遍历以及Math、Number、String、Object的API新增
7) module的支持
8)Proxy
Proxy可以监听对象身上发生了什么事情,并在这些事情发生后执行一些相应的操作
9)Promise
Promises是处理异步操作的一种模式,之前在很多三方库中有实现,比如jQuery的deferred 对象。当你发起一个异步请求,并绑定了.when(), .done()等事件处理程序时,其实就是在应用promise模式。
当然,这里只是对ES6的一部分涉及和基本例子吗,在实际前端开发过程中,ES6的特性还会发挥的淋漓尽致,即前端项目的工程化,期待有接触的前辈和小伙伴们能和我分享更多前端的知识和经验技巧。
ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在2015年6月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。
Node 是 JavaScript 的服务器运行环境(runtime)。它对 ES6 的支持度最高。除了那些默认打开的功能,还有一些语法功能已经实现了,但是默认没有打开。使用下面的命令,可以查看 Node 已经实现的 ES6 特性。
$ node --v8-options | grep harmony
复制代码
上面命令的输出结果,会因为版本的不同而有所不同。
现今网上主要流传且大家耳熟能详地代码片段和书籍中,大多都还是基于ES5所构建的前端工程代码,并不是说ES5已经可以被淘汰,但是可以看到,在各大公司招聘前端工程师时,已然悄悄加上一个默认的前提:“熟悉ES6特性和规范”,也就是说,企业级JS开发风暴早已席卷中国互联网行业。
但是,从ES5到ES6,飞跃的不是一星半点儿,为了让ES5前端经验为主的人对ES6规范和特性有更好的理解,我在这里推荐一个前端转码器:Babel。Babel 是一个广泛使用的 ES6 转码器,可以将 ES6 代码转为 ES5 代码,从而在现有环境执行。这意味着,你可以用 ES6 的方式编写程序,又不用担心现有环境是否支持。下面是一个例子。
配置babel的编译环境不仅需要babel相关js库文件,还需要额外在工程目录下配置一个.babelrc文件,这是babel的默认配置文件,用以设计转码规则和插件
当然,babel还支持命令行方式来对所需编译文件进行转码,需额外安装babel-cli工具
然后让我们来看看在ES6中更新的新特性有哪些在实际生产过程中已经被广泛应用:
1) 箭头操作符(lambda模式)
以下面为例:
2) 类的支持
JS本身就是面向对象的,ES6中提供的类实际上只是JS原型模式的包装。
3) 增强的对象字面量
l 可以在对象字面量里面定义原型
l 定义方法可以不用function关键字
l 直接调用父类方法
4) 字符串模板
5) 解构——自动解析数组或对象中的值
6) let与const关键字、for of值遍历以及Math、Number、String、Object的API新增
7) module的支持
8)Proxy
Proxy可以监听对象身上发生了什么事情,并在这些事情发生后执行一些相应的操作
9)Promise
Promises是处理异步操作的一种模式,之前在很多三方库中有实现,比如jQuery的deferred 对象。当你发起一个异步请求,并绑定了.when(), .done()等事件处理程序时,其实就是在应用promise模式。
当然,这里只是对ES6的一部分涉及和基本例子吗,在实际前端开发过程中,ES6的特性还会发挥的淋漓尽致,即前端项目的工程化,期待有接触的前辈和小伙伴们能和我分享更多前端的知识和经验技巧。
相关文章推荐
- 从最新的技术趋势看前端的未来
- web前端开发需要学习什么内容已经需要使用什么开发工具?
- 大数据时代已经来临 分析未来十年发展趋势
- 《深入理解 ES6》读书笔记,初入前端必学
- 前端学习资料,vue angular react webpack es6应有尽有
- j2ee的安全性问题。J2ee的安全性存在太大的漏洞,未来的希望是Acegi!已经开始翻译Acegi参考文档的工作!
- 前端工程师的未来
- 前端框架对于未来web移动端的影响
- 前端开发者不得不知的ES6十大特性
- Web前端开发的前世和未来
- 前端知识普及之HTML
- 《超级IP》:伪理论,没能比现有的市场营销理论更高明,只敢勉强去解释已经发生的事情,不敢去预测未来。2星。
- es6入门,前端三大框架基础学习
- 或许已经不在是未来
- Google出的新玩意 只能说未来已经到了~
- 献给大学生,未来程序猿的前端学习网站
- 前端连载~:javascript基础已经学好,下一个阶段是dom
- 未来是湿的,已经长毛了 (09年8月文章)
- 前端已经被玩儿坏了!闻所未闻的冷知识,一时间还消化不过来。
- 前端开发者不得不知的ES6十大特性