Skip to main content
 首页 » 编程设计

coffeescript之我应该在 CoffeeScript 之前学习 JavaScript 吗

2025年02月15日49duanxz

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center寻求指导。




9年前关闭。




我正在寻找一些关于在不学习纯 JavaScript 的情况下学习 CoffeeScript 的见解。

我目前编写 CSS/SASS 和 HTML/HAML,我想学习 JavaScript。我知道非常基本的 JavaScript,但我还没有走得很远。我真的很喜欢 CoffeeScript 的语法,它对我来说更有意义。

只学习 CoffeeScript 会搞砸我的学习吗?

请您参考如下方法:

在这一点上,这个问题有两个答案。 Asawyer 说你必须知道 JavaScript 才能调试 CoffeeScript。 Trevor 建议您至少应该是一名中级 JavaScript 程序员。我给你第三个视角。

精通 CoffeeScript 的最快方法是开始使用 CoffeeScript 编写代码,但希望边学边学 JavaScript。 您仍然需要学习很多关于 Javascript 的知识,包括标准对象(对象、数组、日期、数学、XHR 等)。但是其他的东西你可以从 CoffeeScript 的角度学习。例如,Trevor 的书中有一章很棒的关于 jQuery 的内容。每当我需要复习 DOM 操作时,我都会去那里。另一个例子是作用域;一旦您了解了瘦箭头和胖箭头(CoffeeScript 概念)之间的区别,您就会知道在 JavaScript 中处理闭包范围的两种好方法。

如果您不了解面向对象编程,我建议您从像 HeadFirst Design Patterns 之类的书开始,尽管它是基于 Java 的,因为它是我所知道的为 OO 重新编程您的大脑的最快方法。从 JavaScript 开始学习良好的 OO 实践是很困难的……使用 CoffeeScript 就不太难了。

证据

我有 Java、Python 和 ActionScript 方面的背景,但仅在 3 个月前我才开始完全熟悉 CoffeeScript,而且我已经能够快速提升,编写了 4,500 行生产代码,其中包括 2 个协助使用 CoffeeScript 的原始项目开发( CoffeeDocTestLine Commands for Coda )以及我的博士论文工具的主要工作 Lumenize以及为其他两个 CoffeeScript 项目( coffedocCoffeeScript mode for Coda )做出贡献。我从未明确着手编写或学习 JavaScript。

进一步的逻辑

我的结论不仅仅基于我自己的经验。以下是其他原因:

  • 您可以避免浪费时间学习 JavaScript 中的所有缺点。我仍然不知道 == 和 === 之间的区别,我不在乎! [更新:现在我确实知道区别,但谁想要'1',字符串 == 到 1,数字?我仍然很乐意在任何地方使用 ===]。在什么浏览器和什么情况下忘记分号是安全的?您的代码将在您的测试期间正常工作,然后在其他人的浏览器上失败。当然有 jslint 之类的工具,但需要时间来增加这些工具的使用。直接使用 CoffeeScript 会跳过那个时间。
  • 您将学习使用 CoffeeScript 比 JavaScript 更容易创建类和继承的良好 OO 习惯。
  • 列表理解和语言支持的 for 循环会改变您的习惯。 JavaScript 开发人员经常使用函数式回调样式来迭代集合(例如 $().each())。使用这样的函数式样式是 much less efficient但它比 JavaScript 原生提供的语法更简洁。使用 CoffeeScript,您可以获得 native 实现的速度,并且比 jQuery 语法具有更好的可读性。
  • 调试参数被夸大了。编译代码时会维护所有标识符和整体结构。在编译好的 JavaScript 中很容易看到自己的代码。起初,我必须研究我的 CoffeeScript 是如何被转换的,但这就是我学会编写“好的”JavaScript 的方法。现在,我可以轻松阅读编译后的 JavaScript。