首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用coffeescript的合适时机

使用coffeescript的合适时机
EN

Stack Overflow用户
提问于 2012-04-24 18:45:45
回答 4查看 3.4K关注 0票数 18

因此,基本上我有一些顾虑阻碍了我对coffeescript的使用:

  1. 我还不是一个真正的js专家,尽管我已经用了大约3年了,但我仍然觉得我错过了一些重要的东西。因为它对我来说主要是一种支持性的技术,所以我从来没有时间深入研究js (我承认,这可能是一种错误的态度)。如果我开始使用coffeescript
  2. I'm,我的js知识会变得更差,如果我不确定我是否真的可以信任
  3. ,这意味着它编译成
  4. 的js代码有时我不理解coffeescript编译成的js代码,更糟糕的是-为什么它会编译成这样。

我想知道你对上述几点的看法。关键的一点是:使用coffeescript对您的js知识有何影响?在切换到coffeescript之前,您认为完全理解js有多重要?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-04-24 23:03:00

你应该理解Coffeescript应该解决的问题。为此,您应该对javascripts的“坏部分”有一个基本的了解。我建议读一读Douglas Crawford关于这一点(有一本书,但也有很多互联网资源。只需搜索"javascript错误部分“)。基本上,这个想法是“在所有那些笨拙的大括号和分号之下,JavaScript的核心总是有一个华丽的对象模型。CoffeeScript试图以一种简单的方式公开JavaScript的优点。”(摘自coffeescript的网站)。

有一个叫做jslint的工具可以帮助程序员避免javascript陷阱。这个工具会分析你的代码,并给出常见错误的警告,比如全局变量、分号插入、名称空间污染等。

Coffeescript转换为javascript。但是它生成的javascript是一个标准子集,与jslint高度兼容。更重要的是,它生成在所有浏览器上都有效的javascript代码。因此,它不仅仅是一个很好的语法糖层,它确实有助于生成可靠的代码。

票数 11
EN

Stack Overflow用户

发布于 2012-04-24 18:58:46

我想谈谈你的顾虑。

1)如果你已经使用JS三年了,你可能对JS有一个相当扎实的理解。如果你还没有完全理解,也许是时候用一本好的JS书来补充你的知识了。

2) Coffee-script可能不会让你的JS知识变得更差。设计Coffee-script应用程序的方式与设计JS应用程序的方式相同(在大多数情况下),因此您获得的设计技能将会传授给您。在我看来,程序设计是编程中最重要的方面。

3)为什么不信任JS?为什么你信任你使用的任何其他编译器/解释器/其他工具?我怀疑Coffee-script是没有bug的,但许多人将它用于许多目的。这意味着已经测试了大量的行为,通常是在生产环境中,所以您的用例可能已经尝试和测试过了。

4)当然,由Coffee-script生成的JS对您来说是陌生的,因为生成它的规则并不优先考虑人类的可读性。然而,阅读它会增加您对JS的了解,因为您会看到编写的程序是如何运行的。这就把我们带回到了第一点。

票数 6
EN

Stack Overflow用户

发布于 2012-04-24 18:56:36

我认为这里要记住的关键一点是,Coffeescript就是javascript。每个Coffeescript语句或魔术操作符在Javascript中都有一个独特的具体表示。例如,Coffeescript中的(x) -> x * x将直接转换为function (x) { return x * x; }

如果不知道Coffeescript将生成的Javascript,您就无法真正编写Coffeescript。首先,生成的Javascript是您需要调试的内容。如果有什么不同的话,我相信写Coffeescript可能会提高你对Javascript的理解,因为它迫使你做出Javascript独有的决定。例如,当在Coffeescript中,你决定使用=>而不是->,实际上你正在决定是否要绑定this -这是一个非常真实的Javascript问题。

何时(或是否)开始使用Coffeescript?我认为这个问题的答案或多或少取决于你。试一试,如果你觉得使用Coffeescript更容易完成任务,那就坚持使用它。如果您发现很难用与运行的语言不同的语言(因此也就是您必须调试的语言)编写代码,那么请返回到Javascript。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10296365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档