CoffeeScript是否支持单引号字符串中的插值?

时间:2012-08-23 02:33:36

标签: javascript ruby coffeescript

我来到这个问题:

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

结果为#{param}

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

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

因为我认为在Javascript中,单引号和双引号被平等对待。我经常不使用Ruby。任何人都可以解释原因吗?

非常感谢。

2 个答案:

答案 0 :(得分:14)

来自CoffeeScript documentation

  

CoffeeScript中包含Ruby样式的字符串插值。   双引号字符串允许使用#{...}进行插值。   和单引号字符串是字面的。

答案 1 :(得分:11)

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

JavaScript没有字符串插值。 CoffeeScript从Ruby中带来了这一点。禁用单引号只是为了获得一个没有插值解释的字符串的干净方法。

不要将只是JavaScript 表示它是JavaScript 。这是一种风味/变体/兄弟。