我正在寻找一个可以学习的反编译,我完全糊涂了。
我正在阅读有关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的。
所以我有一些悬而未决的问题:
答案 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代码。第二部分对于类库存中的创新是“是”,但对于某些语法扩展就像生成器那样“不”。
答案 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更多的东西,主要是因为它更新,它的雄心壮志。
选择。