### [翻译]  array.length vs. array.length > 0

#### [CHINESE]  array.length与array.length> 0

Is there any difference between checking an array's length as a truthy value vs checking that it's > 0?

In other words is there any reason to use one of these statements over the other:

``````var arr = [1,2,3];
if (arr.length) {
}

if (arr.length > 0) {
}
``````

## 3 个解决方案

### #1

3

`array.length` is fastest and shortest than `array.length > 0`. You can see difference of their speeds : http://jsperf.com/test-of-array-length

array.length比array.length> 0最快和最短。你可以看到它们的速度差异：http：//jsperf.com/test-of-array-length

`if(array.length){...}` is similar to `if(0){...}` or `if(false){...}`

if（array.length）{...}类似于if（0）{...}或if（false）{...}

### #2

9

Is there any difference between checking an array's length as a truthy value vs checking that it's > 0?

Since the value of `arr.length` can only be `0` or larger and since `0` is the only number that evaluates to `false`, there is no difference.

In general, `Boolean(n)` and `Boolean(n > 0)` yield different results for `n < 0`.

In other words is there any reason to use one of these statements over the other

Only reasons related to code readability and understanding, not behavior.

### #3

5

In javascript, they dont make a difference.

In the end, whatever is in between the `if` parenthesis will evaluate to a truthy or falsey value

For all possible falsey values, see All falsey values in JavaScript

If you wish to be more clear and explicit, use

``````if (arr.length > 0) {
}
``````

If you wish to be less verbose, use

``````if (arr.length) {
}
``````