【问题标题】:What's the difference between (typeof variable === 'boolean') and (typeof variable == 'boolean')?(typeof variable === 'boolean') 和 (typeof variable == 'boolean') 有什么区别?
【发布时间】:2017-03-19 19:24:40
【问题描述】:

我都, 我无法弄清楚 - 在类型比较/测试中 - 为什么我们通常使用:

typeof variable === 'boolean'

...永远看不到这个:

typeof variable == 'boolean'

在我看来 typeof 总是返回一个字符串值(类型名称),我不明白为什么我们应该测试类型字符串的类型...?

【问题讨论】:

  • 始终使用=== 是一个众所周知的好习惯,在这里没有区别。
  • 如果您检查 '2' == 2 和 '2' === 2,您会看到区别。3 = 符号也可以进行类型检查
  • 没有看到为什么应该使用=== 而不是== 的任何原因,因此无法说它们是否令人信​​服。在绝大多数情况下(包括这个),这没有什么区别。

标签: javascript comparison typeof


【解决方案1】:

我想这只是一种常见的做法,而且它是惯用的,因为三等号也会比较类型;这更有意义,因为您对类型感兴趣。但实际上,在这种情况下,您不会看到行为上的差异。另见this。

【讨论】:

  • 这里===所比较的类型与typeof所测试的值的类型无关,所以不是真正的“惯用”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-16
  • 2021-08-19
  • 2023-04-07
  • 2013-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多