CoffeeScript允许JavaScript样式==相等语义吗?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (20)

我喜欢CoffeeScript编译==成JavaScript ===运算符。但是如果你想要原始的JS ==语义呢?它们是否可用?我仔细阅读了文档,找不到任何可以实现这一点的内容。

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

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

提问于
用户回答回答于

作为一个可能的扩展,是否有一种方法可以将常规JS块嵌入到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()包含空格,并且'is'在Coffeescript中失败。通过使用jQuery的修剪功能来解决它​​:

$.trim(htmlText) is theExpectedValue 

扫码关注云+社区