Traceur: 体验下一代Javascript语言

标签: 分类?没有 | 发表时间:2011-05-07 01:26 | 作者:yuanyi never-online
出处:http://heikezhi.com

Traceur项目旨在让你预先体验还处于草案阶段的下一代Javascript语言新特性,并根据实际运行的代码来提供反馈,帮助标准制定。

要体验Traceur非常简单,只需要在你的HTML文件头部包含两个js文件即可:

<html>
  <head>
    ...
    <script src="http://traceur-compiler.googlecode.com/svn/branches/v0.10/src/traceur.js"        type="text/javascript"></script>
    <script src="http://traceur-compiler.googlecode.com/svn/branches/v0.10/src/bootstrap.js"        type="text/javascript"></script>
  </head>
</html>

traceur.js是编译器,bootstrap.js则负责将所有script标签中的脚本编译为当前浏览器可执行的Javascript,如果不想这么麻烦,你也可以直接通过这个在线模拟器来体验。

目前Traceur支持以下新的语言特性,每个都十分令人期待:

  • 类继承
  • Traits,traits特性让你可以将一组方法打包起来,然后混入一个或多个类中,类似Ruby语言中的mixin功能
  • Modules,Modules主要用来解决模块依赖和部署问题,让你可以有选择的从外部模块导入指定的部分。
  • 迭代器(Iterators)
  • for (let element : [1, 2, 3]) {
      console.log(element);
    }
    
  • 生成器(Generators),生成器使用yield语法让创建迭代器变得更简单,而无需再去实现__iterator__
  • 延时函数(Deferred Functions),延时函数让你可以不用通过回调函数来执行异步的非阻塞代码,而是使用await函数来刮起当前函数的执行并返回一个包含当前函数执行状态的对象:
  • function deferredAnimate(element) {
        for (var i = 0; i < 100; ++i) {
            element.style.left = i;
            await deferredTimeout(20);
        }
    };
    deferredAnimate(document.getElementById('box'));
    
  • 块范围绑定(Block Scoped Bindings)
  • {
      const tmp = a;
      a = b;
      b = tmp;
    }
    alert(tmp); // error: 'tmp' is not defined.
    
  • 自动解包赋值(Destructuring Assignment)
  • var [a, [b], c, d] = ['hello', [', ', 'junk'], ['world']];
    alert(a + b + c); // hello, world
    
  • 函数默认参数(Default Parameters)
  • function slice(list, indexA = 0, indexB = list.length) {
      // ...
    }
    
  • 剩余参数(Rest Parameters)
  • function push(array, ...items) {
      items.forEach(function(item) {
        array.push(item);
      });
    }
    
  • 展开操作符(Spread Operator),作为其余参数的辅助,展开操作符负责将剩余参数进行展开:
  • function push(array, ...items) {
      array.push(...items);
    }
    function add(x, y) {
      return x + y;
    }
    var numbers = [4, 38];
    add(...numbers);  // 42
    

更多关于新特性及实现细节的介绍请看这里

想和我们一道传播黑客精神?快来加入吧!

无觅猜您也喜欢:

Handlebars.js入门介绍

超简单的MapReduce Javascript实现

你不懂Javascript

Javascript版Heroku: Akshell
无觅

相关 [traceur 体验 下一代] 推荐:

Traceur: 体验下一代Javascript语言

- never-online - 黑客志
Traceur项目旨在让你预先体验还处于草案阶段的下一代Javascript语言新特性,并根据实际运行的代码来提供反馈,帮助标准制定. 要体验Traceur非常简单,只需要在你的HTML文件头部包含两个js文件即可:. traceur.js是编译器,bootstrap.js则负责将所有script标签中的脚本编译为当前浏览器可执行的Javascript,如果不想这么麻烦,你也可以直接通过这个在线模拟器来体验.

下一代Hadoop MapReduce

- Jia - NoSQLFan
本文来自Hadoop Summit大会的一个演讲稿,主讲是Hadoop核心开发团队的Arun C Murthy (@acmurthy),同时他也是Yahoo!刚刚剥离的Hadoop独立公司Hortonworks的 Founder和架构师. 演讲中他讲述了现在的Hadoop存在的一些问题和集群上限,并展望了下一代Hadoop和其MapReduce将会得到的巨大提升.

TermKit: 下一代富终端

- openboy - Wow! Ubuntu
TermKit 是由 Steven Wittens 为 MacOS X 编写的一个很有趣的项目,可以称之为下一代的富媒体终端. 它可以在终端中用图形化元素来显示命令结果,比如图标等等. 现在有人对此项目进行了 fork ,把它移植到了 Ubuntu 平台上,但没有原生程序,只能运行在 Chromium/Chrome 中,有兴趣的话你可以尝试一下.

下一代的webOS手机

- glim - cnBeta.COM
感谢胖鱼网 palmjoy的投递. 我们现在看到没有物理键盘的webos手机前期预览图了,虽然现在pre3是开发的重中之重,但是下一代webos已经开始着手策划,现在已经8月了,不知道有木有webos粉丝和我一样对webos既pre3之后的手机有所期待呢.

[原]下一代ERP技术

- - 阿朱=行业趋势+开发管理+架构
很多企业CIO亲手经历的项目是局域网内的C/S技术,技术构成很简单,后端是关系数据库(一般是SQLSERVER,高级点的是Oracle),客户端一般是VB/PB/DELPHI来写(高级点有人用.NET WinForm来写). 再复杂点的还有曾经流行的微软COM技术,用DELPHI写COM组件. 再复杂点的再加一个数据上传、系统调用整合的中间件.

MapR初体验

- 呆瓜 - 淘宝数据平台与产品部官方博客 tbdata.org
MapR是MapR Technologies, Inc的一个产品,号称下一代Hadoop,使Hadoop变为一个速度更快、可靠性更高、更易于管理、使用更加方便的分布式计算服务和存储平台,同时性能也不断提高. 它将极大的扩大了Hadoop的使用范围和方式. 它包含了开源社区的许多流行的工具和功能,例如Hbase、Hive.

用户体验

- tal-rasha - 博客园-首页原创精华区
    用户体验是一个很大的话题,先从一个故事说起.     周末参加了两天的PMP培训,听课期间注意到老师的一个细节,在讲选择题的时候,选项A、C读音正常,而“B”老师读为Boy,“D”老师读为Dog.     刚听到的时候大家莞尔一笑,以为这是个善意的玩笑.     很快,我想明白了,B和D的发音类似,容易混淆;Boy和Dog是简单的单词,发音能够明确区分,也没有类似Bog和Doy的读音混淆.

VSCode 初体验

- - SegmentFault 最新的文章
Microsoft 今天在其 Build 开发者大会上正式宣布了 Visual Studio Code 项目:一个运行于 OS X,Windows 和 Linux 之上的,针对于编写现代web和云应用的跨平台编辑器. 作为编辑器控的我,得知消息后立马下载体验了一下. Windows上优秀的编辑器实在太多了, Sublime Text, EditPlus, Notepad++......还有诸如国产的 EverEdit等后起之秀.

SmartPen,下一代的笔记工具?

- LooKing - 大家都叫我老杨
今天收到evernote的邮件,说是“Study Smater with Evernote Partners and Tools”,里面提到一种叫做smartpen的电子笔,Evernote介绍说,这个smartpen可以. 应该是一种类似电子记事笔之类的东西吧. 点进去这个smartpen的主页 http://www.livescribe.com/en-us/,网站标题很有霸气,叫做Never Miss A word,下面有几个视频连接,分别介绍这个Echo smartpen,它的用法以及不同行业的人使用后的新的体会.

竞速下一代防火墙

- wuwu - 弯曲评论
由于版面及内容形式等因素限制,文章在报纸上分3期共10个版进行连载. 本文是在连载结束后,重新调整了内容框架,修正、更新了一部分文字而成,看起来更像是一个完整的内容专题. 尤其是对13家厂商的采访部分,除了错别字和极个别不妥当的措辞或叙述外,未再做其他修改. 文章撰写过程中,得到了许多来自咨询机构、厂商、学术界的朋友的大力支持,在此表示感谢.