8

我来到这个问题:

 f = (param) ->
      console.info '#{param}'
 f(1)

结果是#{param}

当我用双引号将字符串括起来时,这只是 print 1。我也在 Ruby 中测试过它,它的行为是一样的。但这与 CoffeeScript.org 中的规则相矛盾:

CoffeeScript 的黄金法则是:“它只是 JavaScript”。

因为我认为在Javascript中,单引号和双引号是平等对待的。而且我不经常使用 Ruby。谁能解释为什么?

非常感谢。

4

2 回答 2

15

CoffeeScript 文档

Ruby 风格的字符串插值包含在 CoffeeScript 中。双引号字符串允许使用 #{ ... } 进行插值,而单引号字符串是文字。

于 2012-08-23T02:35:41.857 回答
11

“它只是 javascript”意味着它从根本上编译为普通的 JavaScript,并且不会尝试采用完全不同的编程范式并将其编译为 JavaScript。CoffeeScript 主要关注的是避免“不好的部分”、样板文件和不必要的语法,而不是引入完全不同的基本结构,例如数据类型等。

JavaScript 没有字符串插值。CoffeeScript 为方便起见从 Ruby 中引入了这一点。为单引号禁用它只是为您提供了一种在不解释插值的情况下获取字符串的干净方法。

不要把It's just JavaScript 理解It IS JavaScript。这是一种风味/变体/兄弟姐妹。

于 2012-08-23T02:40:06.190 回答