为什么要使用typeof的返回值进行严格比较

时间:2015-01-14 08:17:19

标签: javascript

人们倾向于写

if (typeof(value) === "undefined")
{
  /* something */
}

但为什么要使用严格的比较? typeof总是计算为字符串,不是吗?

什么不使用

if (typeof(value) == "undefined")
{
  /* something */
}

2 个答案:

答案 0 :(得分:1)

在这种情况下,它并非绝对必要 - 正如您所说typeof总是返回一个字符串,但同样没有令人信服的理由使用==。我怀疑大多数人都养成了默认使用严格等于的习惯,这就是你在这种情况下更常见的原因。

答案 1 :(得分:1)

  1. 我们所知道的良好做法是使用严格的比较(这是我们应该养成的习惯!)。

  2. 有些情况类似于您在示例中显示的情况,可能没有必要使用严格的比较。(此处https://stackoverflow.com/a/3736117/3556874您可以看到我们不需要===)。

  3. 在这种情况下即typeof(value),使用=====没有区别,因此使用===作为习惯是一种好习惯