ECMAScript六个值得看好的特性

2011年,在YUIConf听了David Herman的演讲之后,我开始对ECMAScript十分感兴趣。我特别希望能看到它的一些特性能很快应用到V8上,那样我就可以再node.js上用它了。这些附加功能能解决很多新手用JavaScript时面对的常见问题,尽管规格要到2013年才能最终应用(David在录像中是这样说的),但它的很多特性却会在此之前就能给Chrome和Firefox带来改变。

就我个人而言,我很期待下面的一些特性:

let关键字

let关键字可以由一个块作用域。由于var关键字的作用范围是一个函数,它有时候会导致一些意想不到的bug。为此,我们可以用let来代替var来避免此类bug。

默认参数

function foo(bar="baz") {

console.log(bar);

}

有了默认参数以后,我们就不需要令人费解的选择对象模式了(the convoluted object pattern)。

不严格的解析

看起来像Python,但没有那么严格。

let [x,y] = [3,4,5]; // x=3, y = 4

多行语句

你可以仅仅使用一个`(反引号)来指示多行语句。

var htmlString = `Say hello to

multi-line

strings!`

模板

你可以在你的语句中像下面这样内嵌JavaScript变量:

var firstName = "Jack";

var message = `Hello ${firstName}!`; // "Hello Jack!"

列表解析List comprehension

又是一个Python风格的结构:

let even = [ x for (x in values([1,2,3,4,5,6])) if (x %2 === 0) ];

values()让x就可以指示元素值,而不需要元素下标(element indice)。同样的功能也可以用for of结构来表达:

let even = [ x for(x of [1,2,3,4,5,6]) if (x%2 === 0) ];

除此以外,map,filter,reduce和其他的一些新的用法会成为新特性(https://developer.mozilla.org/Special:Tags?tag=ECMAScript5)的一部分(这些特性有的已经在Chrome、Firefox和IE9(gasp,http://msdn.microsoft.com/en-us/library/ff679973(v=vs.94).aspx)中实现了)。

更新:

由于注意到这篇文章在HN的首页上出现了,所以我加上了我之前遗漏的建议的模块系统(the proposed module system)。这是演讲中例子:

import { $ } from "jquery.js"

import { map, each } from "underscore.js"

同样,这还是Python风格的!所指示的JavaScript文件将会在代码执行后由你的浏览器加载。

本文作者: Andrew Flocchini,作为苹果的管理者在Minnesota的一个大学中工作,推广了苹果的应用。在这里可以看到作者本人对他自己的一个非常生动有趣的自我介绍。

原文链接: ECMAScript 6 looks promising

 译文来源:http://www.webapptrend.com/ 
WebAppTrend是一个独立的技术博客,关注Web App前瞻和实践,以及智能浏览器发展 

请大家在关注CSDN的同时,关注我们的新浪微博 @WebAppTrend,欢迎加入我们的QQ群:193775364

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值