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

Cha*_*ang 8 javascript ruby coffeescript

我来这个问题:

 f = (param) ->
      console.info '#{param}'
 f(1)
Run Code Online (Sandbox Code Playgroud)

结果是 #{param}

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

CoffeeScript的黄金法则是:"它只是JavaScript".

因为我认为在Javascript中,单引号和双引号被平等对待.我经常不使用Ruby.有谁能解释为什么?

非常感谢.

Jus*_*ner 15

CoffeeScript文档:

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

  • 除了单引号字符串*不是*真正的文字,因为它们在Ruby中.在Javascript中,单引号字符串的作用类似于双引号字符串,并将反斜杠解释并视为\n等的转义字符,需要转义实际的反斜杠.Coffeescript因为我不清楚的原因而延续了这种行为. (3认同)

Pet*_*ons 11

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

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

不要把它只是JavaScript意味着它是JavaScript.这是一种风味/变体/兄弟姐妹.