使用JavaScript是不好的做法"真实性#34;?

时间:2014-09-30 12:12:37

标签: javascript

Underscore.js有两个方法_.isNull_.isUndefined我们在代码中使用了很多方法,我们还为_.isUndefinedOrNull创建了一个混合方法。

我最近意识到我可以很容易地使用javascripts“真实性”来在大多数时间内获得相同的结果所以问题是,那被认为是不好的做法吗?

什么更好?

if(someVariable){...}

if(_.isNull(someVariable) || _.isUndefined(someVariable){...}

2 个答案:

答案 0 :(得分:3)

它们两者完全不同。

if (someVariable)
如果someVariable0false

将评估为假。因此,在这种情况下最好进行明确的检查。您可能希望检查this answer中的真值表,该真值表显示何时将变量评估为真或假。

答案 1 :(得分:1)

  

我最近意识到我可以轻松地使用javascripts"真实性"大多数时候都能达到相同的效果

如果只是大部分时间,那么您的解决方案不起作用。请改用if (someVariable == null)来测试undefined或null。

  

所以问题是,这被认为是不好的做法吗?

不一定。如果您知道someVariable除了要测试的null / undefined以外的所有可能值都是真实的(例如对象),那么它很好。

如果它们可以是原始值,那么除了你的条件显然想要测试相应类型的虚假值之外,它通常是一个错误。在你的空比较案例中,这是一个错误。