CoffeeScript是否允许JavaScript风格的==相等语义?

我喜欢CoffeeScript将==编译成JavaScript ===运算符 。 但是,如果你想要原始的JS ==语义呢? 他们有空吗? 我已经钻了文件,并找不到任何启用这个。

更一般地说,有没有办法将简单的JS内联到我的CoffeeScript代码中,以便编译器不会触摸它?

我宁愿避免编辑编译的JavaScript输出,因为我使用Chirpy在Visual Studio中自动生成它。

作为一个可能的扩展,有没有办法将常规JS块embedded到CoffeeScript代码,以便它不被编译?

是的, 这是文件 。 你需要反编译JavaScript代码( ` )。 这是您在CoffeeScript中直接使用JavaScript的==的唯一方法。 例如:

CoffeeScript来源[ 尝试 ]

 if `a == b` console.log "#{a} equals #{b}!" 

编译的JavaScript

 if (a == b) { console.log("" + a + " equals " + b + "!"); } 

== null / undefined / void 0的具体情况是由后缀存在操作符?

CoffeeScript来源[ 尝试 ]

 x = 10 console.log x? 

编译的JavaScript

 var x; x = 10; console.log(x != null); 

CoffeeScript来源[ 尝试 ]

 # `x` is not defined in this script but may have been defined elsewhere. console.log x? 

编译的JavaScript

 var x; console.log(typeof x !== "undefined" && x !== null); 

这不完全是答案,但这个问题对我来说,因为jQuery的.text()包括空白和'是'在Coffeescript失败。 通过使用jQuery的修剪function来解决它​​:

 $.trim(htmlText) is theExpectedValue