Underscore.js有两个方法_.isNull
和_.isUndefined
我们在代码中使用了很多方法,我们还为_.isUndefinedOrNull
创建了一个混合方法。
我最近意识到我可以很容易地使用javascripts“真实性”来在大多数时间内获得相同的结果所以问题是,那被认为是不好的做法吗?
什么更好?
if(someVariable){...}
或
if(_.isNull(someVariable) || _.isUndefined(someVariable){...}
答案 0 :(得分:3)
它们两者完全不同。
if (someVariable)
如果someVariable
为0
或false
,将评估为假。因此,在这种情况下最好进行明确的检查。您可能希望检查this answer中的真值表,该真值表显示何时将变量评估为真或假。
答案 1 :(得分:1)
我最近意识到我可以轻松地使用javascripts"真实性"大多数时候都能达到相同的效果
如果只是大部分时间,那么您的解决方案不起作用。请改用if (someVariable == null)
来测试undefined或null。
所以问题是,这被认为是不好的做法吗?
不一定。如果您知道someVariable
除了要测试的null
/ undefined
以外的所有可能值都是真实的(例如对象),那么它很好。
如果它们可以是原始值,那么除了你的条件显然想要测试相应类型的虚假值之外,它通常是一个错误。在你的空比较案例中,这是一个错误。