因此,基本上我有一些顾虑阻碍了我对coffeescript的使用:
我想知道你对上述几点的看法。关键的一点是:使用coffeescript对您的js知识有何影响?在切换到coffeescript之前,您认为完全理解js有多重要?
发布于 2012-04-24 23:03:00
你应该理解Coffeescript应该解决的问题。为此,您应该对javascripts的“坏部分”有一个基本的了解。我建议读一读Douglas Crawford关于这一点(有一本书,但也有很多互联网资源。只需搜索"javascript错误部分“)。基本上,这个想法是“在所有那些笨拙的大括号和分号之下,JavaScript的核心总是有一个华丽的对象模型。CoffeeScript试图以一种简单的方式公开JavaScript的优点。”(摘自coffeescript的网站)。
有一个叫做jslint的工具可以帮助程序员避免javascript陷阱。这个工具会分析你的代码,并给出常见错误的警告,比如全局变量、分号插入、名称空间污染等。
Coffeescript转换为javascript。但是它生成的javascript是一个标准子集,与jslint高度兼容。更重要的是,它生成在所有浏览器上都有效的javascript代码。因此,它不仅仅是一个很好的语法糖层,它确实有助于生成可靠的代码。
发布于 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的了解,因为您会看到编写的程序是如何运行的。这就把我们带回到了第一点。
发布于 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。
https://stackoverflow.com/questions/10296365
复制相似问题