我正在学习CoffeeScript并使用js2.coffee将我的Javascript文件转换为CoffeeScript。一条线,它警告我
Operator '==' is not supported in CoffeeScript, use '===' instead.
背后的理由是什么? 为什么CoffeeScript不支持==
?
答案 0 :(得分:1)
出于同样的原因,大多数Linters警告你不要使用它。
这是一个奇怪的实施操作员,具有令人惊讶的副作用。
"\n\t" == false
// => true
关于这个主题的内容很多,但最值得注意的是==
运算符使Douglas Crockford的things to avoid列表。
答案 1 :(得分:1)
实际上,CoffeeScript会将==
编译为JavaScript的===
(以及!=
至!==
,如documentation所示。
所以底线是的,它不支持它。我想这是因为==
在检查等式之前进行类型转换如果操作数是不同类型的。由于意外结果及其性能,此转换是一种令人不悦的做法。
有关==
vs ===
问题的在线讨论很多。 MDN docs帮助我更好地了解了这个问题。