coffeescript-madness中提到了用coffee的literal来在函数内部强制生成局部变量,防止对外层变量的意外修改,例如coffee代码:

y = 0
test = (x) ->
  `var y`
  y = 10
  x + y

会生成:

var test, y;

y = 0;

test = function(x) {
  var y;
  y = 10;
  return x + y;
};

反引号内的内容会被直接打印到输出代码中,并且自动补全一个分号结尾。

在生产实践中是不会用这种歪门邪道的,就当知道了一个跟编译器玩捉迷藏的方法好了。