JavaScript 6给力 Web开发 新增特性

        【IT168 技术】本文是从 ECMAScript 6 looks promising 这篇文章翻译而来。

  JavaScript6让我很兴奋,这是我看了David Herman在YUIConf 2011大会上的演讲后的反应。我非常希望这些语言特征能尽快的在V8引擎上实现,这样我就可以在node.js里使用它们了。这些新增加的语言特征对于一个使用JavaScript的程序员来说,解决了很多以前使用起来很不方便的东西。尽管这个标准中2013年才能制定完成(大会上David这样说的),谷歌浏览器和火狐浏览器很有可能会提前实现这些特征。

  从我个人来说,下面的这些特征我很感兴趣:

  let 关键字

  let 关键字能产生一个代码块内的变量范围。因为 var 有一个函数式的范围概念,这有时候容易产生出不注意的错误。以后,我们完全使用 let来代替var,从而避免这样的错误。

  缺省参数 

function foo(bar = " baz " ) {

  console.log(bar);

  }

  有了缺省参数,省去了很多折腾的代码。

  非严格的解构方式

  很像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 复合操作

  同样,这也是一个非常Python的结构:

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

  使用 values() 能够让 x 来表示List里的成员的值,而不是成员变量。你也可以使用新的 for of 语法来实现这样的功能:



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

  除此之外, map, filter, reduce 等等概念也将会成为新标准的内容之一 (有一些功能已经在谷歌浏览器和火狐浏览器里被实现,IE9也有不少这方面的改进)。

  更新:

  发现这个帖子被顶到了HN的首页,我必须要加上遗漏的新标准中的模块系统操作功能。演讲中的例子:

  import { $ } from " jquery.js "

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

  还是一样,全是Python的套路!被引用的JavaScript文件会代码执行前加载的你的浏览器中。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值