这些未定义的检查在行为上是否相同?

2024-03-29

我似乎有不同的方法(严格平等)检查undefined:

  • if (something === undefined)
  • if (typeof something === 'undefined')
  • if (something === void 0)
  • 可能还有其他人

In a 幸福的场景他们的行为是一样的。换句话说,它们都有效。

但是,考虑到 JavaScript 的所有怪异之处,它们的行为真的相同吗?

If yes,为什么人们选择其他方法而不是第一种?这是某种遗产还是误解?因为第一个显然在可读性和意图演示上都是最清晰的。


if (something === undefined)是标准的正常方式

typeof something === 'undefined'在声明的变量上主要是一个过度防御的解决方案,从您可以更改的时间开始window.undefined。如果您不知道变量是否已声明,它的优点是不会引发错误,但我认为合法的代码不应该支持声明状态未知的变量的情况。

void 0 (or 作废任何东西 http://es5.github.io/#x11.4.2) 是一种标准化的方法undefined所以它相当于第一个但没用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

这些未定义的检查在行为上是否相同? 的相关文章

随机推荐