如果我使用Google Closure,我是否需要担心绝对平等?

时间:2016-11-16 16:29:23

标签: google-closure-compiler

在修复与隐式投射相关的错误并向开发人员讲话时,我遇到了这个论点:

如果使用Closure,则不需要绝对相等。任何值都将被输入,因此您无需担心隐式强制转换。

我的回答是,那太冒险了。你做了很多假设; Closure不会改变JavaScript,它主要是一个迷宫般的超级层(除了:可能是一个没有实际意义的,现在我们有TypeScript)。

无论如何,如果其中一个隐含的东西确实因为注释由于某种原因没有完全解决而崩溃,那么你最终可能会遇到一个棘手的错误(这就是发生的事情;它被分配给我,因为我猜其他的开发人员并不认为这可能是问题所在。

我得到了回答,“好吧,如果该开发者正确输入了该对象,这不仅仅是一个对象......”

或者......你可以通过使用三个等号而不是两个来轻松防止这类事情。如有必要,使用断言或控制台日志检查条件。不要只是把它挂在那里。

无论如何你怎么想;如果你正在使用Closure,你是否还应该遵循在JS代码中使用绝对相等的一般最佳实践?

我知道这也导致更广泛的对话(例如Java 8的“可选”是“完全没用”),但在Closure的背景下很奇怪。

1 个答案:

答案 0 :(得分:0)

问题有点模糊,代码示例会有所帮助。但是,闭包并不一定要键入每个对象和变量。除非有特殊原因,否则我总是使用===