CoffeeScript简介

想象一下一个绝望的情况:您在Braughsir的土地上(毗邻Marrcup和Knoad王国),为了营救您所钟爱的美丽贵族,您必须走100英里。

每走几步,您都必须旋转一下。 还有地雷。 掉落的分号地雷,不封闭的地雷,全球可变地雷,所有神奇的地雷,等待您绊倒10分钟后,都会静静地爆炸并炸毁您的腿。

现在想象一位仙女来帮助您。 它承诺将距离减半,将地雷围在墙上,并为您提供火箭溜冰鞋。 火箭溜冰鞋! 这个仙女是CoffeeScript。 您将接受它的报价。 但是,既然您已经确信了,您将需要理性的理由来告诉您的老板。 不用担心,我们有那些!

原因1:它编写的JavaScript比您编写的要好。

关于CoffeeScript,您应该了解的第一件事是,它只是JavaScript,上面有一层闪亮的油漆。 通常,您编写CoffeeScript然后将其输入到编译器中,该编译器吐出JavaScript。 在本文中,我们将手动剥离该层油漆,以显示其下面的普通旧JavaScript。

让我们来看第一个例子:

x = 5

如果您来自Ruby或Python之类的语言,那么您将一无所获。 如果您来自JavaScript,您会有些紧张。 为什么? 嗯,这就是写得不错的JavaScript中的语句。

var x;
x = 5;

如果您忘记了var或分号,JavaScript有时(但并非总是)会停止工作,有时会在代码的另一个看似无关的部分中停止工作。 因此,与像Java这样的静态编译语言不同,允许初学者和专家都犯愚蠢的语法错误,并且与其他动态语言(如Ruby和Python)不同,犯这些错误非常容易,而且它们通常会静默地失败。

CoffeeScript具有动态语言的清晰度,同时还能够像静态语言一样在编译时捕获最严重的错误。 还有像缺少var和删除分号之类的陷阱? 自动为您处理。 它为您构建的JavaScript代码甚至会传递JavaScriptLint (样式指南)而不会发出警告。

即使您可以编写完美的代码,为什么还要浪费那些大脑周期呢? 如果CoffeeScript除了生成干净快速的JavaScript外别无其他选择,那将是值得的,因此我可以专注于更重要的事情,而不是记住键入分号。 幸运的是,CoffeeScript可以做更多的事情。

原因2:是JavaScript,但字符较少。

我们将继续进行简单的更改,因为这些更改最容易注意到,我们不希望您稍后在浏览更重要的元素时分心。 这是一个来自CoffeeScript网站的简单示例函数。

square = (x) -> x * x

这里发生了什么事? 我们正在声明一个名为square的函数,该函数等于表达式(x) -> x * x 。 这个表情在做什么? 这里的重要部分是-> 。 左侧的所有内容都是我们要输入到函数中的变量,右侧的所有内容都是我们对这些变量所做的工作。 在这里,我们吸取变量x ,并将其乘以它。 然后我们称它为简写的square ,这样,只要我们想自己乘某物,就可以称squaresquare(4)变成4 * 4,然后变成16。JavaScript进行完全相同的操作,但是执行它花费的时间更长:

var square;

square = function(x) {
  return x * x;
};

请注意,JavaScript版本中添加的所有内容均与平方不相关。 都是噪音。 CoffeeScript是编程语言的隔音耳机。 但是,有时花括号不只是杂音。 毕竟,有时您想编写多行功能。 您如何跟踪没有花括号的结尾? 请查看从CoffeeScript主页获取的另一个示例:

if happy and knowsIt
  clapsHands()
  chaChaCha()
else
  showIt()

您会注意到,即使有多行,CoffeeScript仍然没有花括号。 之所以可以避免,是因为它是用空格分隔的。 如果您熟悉Python,Haml或Sass,那么您已经知道这意味着什么。 基本上,不是使用花括号来控制流,而是查看行首的空格和制表符。 再进入一个选项卡基本上就像放一个大括号,而返回一个标签就像放一个大括号。 如果这听起来很复杂,请不要担心。 95%的时间,无论如何这都是样式良好的JavaScript的间距。

到目前为止,我们谈论的所有内容都是基本的JavaScript,其中删除了许多小障碍。 实际上,这是CoffeeScript提供的最大,最容易实现的价值主张之一,但从类开始,还有更多的价值主张。

原因3:它是JavaScript,具有传统的类系统

每种面向对象语言的类系统都有怪癖。 JavaScript的类甚至都不称为类。 它们被称为“原型”。 是的,如果您来自其他语言,至少会暂时使您感到困惑。 好消息! CoffeeScript可以解决此问题。 这是一个快速的类和超类安排:

我们不再需要将CoffeeScript逐行转换为JavaScript。 这是因为要使JavaScript的原型系统适合传统的类系统,必须进行很多扭曲。 没有CoffeeScript,您的思维将不得不独自执行这些扭曲。 这是CoffeeScript类的一个基本但更完整的示例,因此您可以立即开始使用它们:

野外的CoffeeScript

我使用的许多示例均摘自CoffeeScript主页 。 他们在那里有一个不错的翻译器,它将带您的CoffeeScript并立即向您显示相应的JavaScript的外观。

但是,如果要在现实生活中使用它,则还需要更多一些东西。 如果您使用的是Ruby on Rails,请将.js文件重命名为.coffee.js.coffee 。 现在完成了。 它甚至可以为您最小化和连接您的JavaScript文件。 如果您不使用Ruby on Rails,则必须下载并安装node.js及其对应的CoffeeScript软件包。 然后将其设置为观看CoffeeScript文件。

From: https://www.sitepoint.com/an-introduction-to-coffeescript/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值