CoffeeScript与和谐

时间:2015-08-19 07:45:03

标签: javascript coffeescript ecmascript-6

我正在寻找一个可以学习的反编译,我完全糊涂了。

我正在阅读有关CoffeeScript的内容,并认为这是一个很好的学习内容,但我并不完全理解。它支持ES6吗?我试图找到答案,但我发现的只是比较CoffeeScript和ES6。

然后我去维基百科了解它。 正如维基百科所说:

  

CoffeeScript是一种可以转换为JavaScript的编程语言。它增加了灵感来自Ruby,Python和Haskell [1]的语法糖,以增强JavaScript的简洁性和可读性

和ES是:

  

ECMAScript是Ecma International在ECMA-262规范和ISO / IEC 16262中标准化的脚本语言。该语言广泛用于Web上的客户端脚本,采用JavaScript等几个众所周知的实现形式,JScript和ActionScript。

它们都是编程语言,但我理解由JS和CoffeeScript实现的ES是“转换”为JS的。

所以我有一些悬而未决的问题:

  1. 我可以在编写CoffeeScript时使用所有新的ECMAScript功能吗?
  2. 我们比较ES6和CoffeeScript吗?

2 个答案:

答案 0 :(得分:2)

有两个不同的信息,您可能会混淆:

  • CoffeeScript在转换时是否生成ES6

    e.g。 CS [a, b] = [b, a]是否会编译为ES6 [a, b] = [b, a]或ES5 ref = [b, a], a = ref[0], b = ref[1];

  • 是否可以在CoffeeScript中使用ES6的功能。

    e.g。是否可以在CS中使用set = new Set();以及是否可以使用ES6发电机。

第一部分现在是“不” - CoffeeScript不生成ES6代码。第二部分对于类库存中的创新是“是”,但对于某些语法扩展就像生成器那样“不”。

*)除非您使用https://www.npmjs.com/package/coffee-script-es6

之类的分叉

答案 1 :(得分:1)

为了便于讨论,ECMAScript和Javascript是完全相同的。 ECMAScript是Javascript的“正式”名称。 ES6是它的最新版本。迄今为止没有浏览器实际上完全实现ES6。在撰写本文时,您无法直接在浏览器中使用ES6功能。

目前人们所做的是编写ES6,然后通过像Babel之类的编译器运行它,将其编译为ES5或其他以前版本的Javascript,这在今天的浏览器中实际上是支持的。

CoffeeScript做同样的事情:它是一种非Javascript的语言,并且不被浏览器直接支持,但它可以编译为“简单”的Javascript以在浏览器中运行。

为什么要做这些事情中的任何一个而不是编写原始Javascript?因为ES6和CoffeeScript都为简单的ES5提供了更简单的语法。它只是使编写代码变得更快,并且代码可以更简洁,更具表现力,并且更易于阅读和维护。

历史上,CoffeeScript是第一个提供这种编写代码的模式多年。 ES6是最近的发展。 ES6正式定为Javascript的下一个版本,最终将直接由浏览器正式支持。 ES6还有比CoffeeScript更多的东西,主要是因为它更新,它的雄心壮志。

选择。