【发布时间】:2017-12-03 19:21:20
【问题描述】:
几个月以来,我的 IDE (WebStorm) 突出显示了 JavaScript 常规相等运算符,并带有以下警告:
Comparioson a == b may cause unexpected type coercion.
This inspection reports usages of JavaScript quality operators which may cause unexpected
type coercions. It is considered a good practice to use the type-safe equality operators
=== and !== instead of their regular counterparts == and !=.
我知道这两个操作员的不同行为,我倾向于使用它们,因为它们的行为不同,例如。对于惰性类型转换:
if(parseInt(val) == val) // val can be safely converted to int
但是,IDE 正在为== 的所有 个事件添加警告,因此上述内容不再感觉正确。我可以将所有这些部分转换成可读性差的东西:
if(parseInt(val).toString() === val) // be happy webstorm
这真的是要走的路吗?还是我应该忽略/禁用这些警告?
【问题讨论】:
-
==只对if(x==null)有用,因为它也命中undefined -
即真的不是“好”
-
@BoundaryImposition:这怎么不好?我从来不想在 null/undefined 之间分裂头发;都是“不”的意思。为什么要输入更多内容以使其清晰易读;让编译器完成这项工作。
-
将此问题标记为因不具建设性而被关闭的问题的副本没有帮助。它本质上是在说这个问题没有建设性。
标签: javascript type-conversion operators warnings equality