检查值是否> 0

时间:2015-10-11 07:19:43

标签: javascript

以下表达式在所有情况下都相同吗?

if(obj.val && obj.val > 0){...}

if(obj.val){...}

我可以使用更简单的后一种表达吗?

更新

我可以只使用obj.val > 0吗?

2 个答案:

答案 0 :(得分:2)

没有。如果obj.val === -1(或任何负数),则第一个表达式为false,第二个表达式为true

> Boolean(-1 && -1 > 0)
false
> Boolean(-1)
true

更新

如果您完全确定obj是已定义的对象,则可以只使用obj.val > 0,是的。如果obj.val不是数字,请注意类型转换的时髦行为。

答案 1 :(得分:0)

不,他们不等同。考虑

obj = { val: -1 };

然后你的第一个表达将是假的,第二个表达将是真实的。