为什么CoffeeScript不支持`==`?

时间:2015-03-04 15:32:41

标签: coffeescript

我正在学习CoffeeScript并使用js2.coffee将我的Javascript文件转换为CoffeeScript。一条线,它警告我

Operator '==' is not supported in CoffeeScript, use '===' instead.

背后的理由是什么? 为什么CoffeeScript不支持==

2 个答案:

答案 0 :(得分:1)

出于同样的原因,大多数Linters警告你不要使用它。

这是一个奇怪的实施操作员,具有令人惊讶的副作用。

"\n\t" == false
// => true

关于这个主题的内容很多,但最值得注意的是==运算符使Douglas Crockford的things to avoid列表。

答案 1 :(得分:1)

实际上,CoffeeScript会将==编译为JavaScript的===(以及!=!==,如documentation所示。

所以底线是的,它不支持它。我想这是因为==在检查等式之前进行类型转换如果操作数是不同类型的。由于意外结果及其性能,此转换是一种令人不悦的做法。

有关== vs ===问题的在线讨论很多。 MDN docs帮助我更好地了解了这个问题。