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