设为首页收藏本站

Scripts 学盟

 找回密码
 加入学盟

QQ登录

只需一步,快速开始

查看: 1561|回复: 2
打印 上一主题 下一主题

JavaScript6看上去很美 [复制链接]

Rank: 8Rank: 8

风雨相伴

跳转到指定楼层
1#
Snail 实名认证  发表于 2011-12-7 08:26:56 |只看该作者 |倒序浏览
本帖最后由 Snail 于 2011-12-7 08:27 编辑

本文是从 ECMAScript 6 looks promising 这篇文章翻译而来。
转载自:http://www.aqee.net/ecmascript-6-looks-promising/#more-3054


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

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

let 关键字
let 关键字能产生一个代码块内的变量范围。因为 var 有一个函数式的范围概念,这有时候容易产生出不注意的错误。以后,我们完全使用 let来代替var,从而避免这样的错误。
缺省参数
  1. function foo(bar=\"baz\") {
  2.    console.log(bar);

  3. }
复制代码
有了缺省参数,省去了很多折腾的代码。

非严格的解构方式
很像Python语言,解构时不需要严格匹配。
  1. let [x,y] = [3,4,5];   // x=3, y = 4
复制代码
多行模式的字符串表达
你可以简单的使用 ` (反点号)操作符来声明一个多行字符串。
  1. var htmlString = `Say hello to
  2. multi-line
  3. strings!`
复制代码
模板化
你可以通过这种方式把JavaScript变量嵌入的字符串中:
  1. var firstName = \"Jack\";
  2. var message = `Hello ${firstName}!`; // \"Hello Jack!\"
复制代码
List 复合操作
同样,这也是一个非常Python的结构:
  1. let even = [ x for (x in values([1,2,3,4,5,6])) if (x %2 === 0) ];
复制代码
使用 values() 能够让 x 来表示List里的成员的值,而不是成员变量。你也可以使用新的 for of 语法来实现这样的功能:
  1. let even = [ x for(x of [1,2,3,4,5,6]) if (x%2 === 0) ];
复制代码
除此之外, map, filter, reduce 等等概念也将会成为新标准的内容之一 (有一些功能已经在谷歌浏览器和火狐浏览器里被实现,IE9也有不少这方面的改进)。

更新:
发现这个帖子被顶到了HN的首页,我必须要加上遗漏的新标准中的模块系统操作功能。演讲中的例子:
  1. import { $ } from \"jquery.js\"
  2. import { map, each } from \"underscore.js\"
复制代码
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
分享分享0 收藏收藏0
命运的手,推我向前!何处是停歇!

管理员

超级大菜鸟

Rank: 9Rank: 9Rank: 9

2#
混混@普宁.中国 实名认证  发表于 2011-12-12 17:37:39 |只看该作者


越来越难学了

使用道具 举报

Rank: 8Rank: 8

风雨相伴

3#
Snail 实名认证  发表于 2011-12-13 17:51:00 |只看该作者
混混@普宁.中国 发表于 2011-12-12 17:37
越来越难学了

要学的东西太多了!都没时间学
命运的手,推我向前!何处是停歇!

使用道具 举报

您需要登录后才可以回帖 登录 | 加入学盟

手机版|Scripts 学盟   |

GMT+8, 2024-12-19 14:28 , Processed in 1.200610 second(s), 12 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部