Question: I've tried to build <https://github.com/DEVSENSE/Phalanger>, but after the build process it shows build errors. I tried VS 2015, maybe there it just a question of a wrong version?

[![screenshot](https://i.stack.imgur.com/Q6qXv.png)](https://i.stack.imgur.com/Q6qXv.png)

Answer: 
No. They are completely different.

`test in [1,2,3]` checks if there is a property **named** `2` in the object. There is, it has the value `3`.

`[1,2,3].indexOf(test)` gets the first property with the **value** `2` (which is in the property named `1`)

> 
> suggest that you can't do in on an array, only on an object
> 
> 
> 

Arrays are objects. (A subclass if we want to use classical OO terminally, which doesn't really fit for a prototypal language like JS, but it gets the point across). 

The array `[1, 2, 3]` is *like* an object `{ "0": 1, "1": 2, "2": 3 }` (but inherits a bunch of other properties from the Array constructor).
The first checks for an index, or if property of an object exists,

```
console.log(test in [1,2,3]);

```

and not for a value in the array, as the second is doing.

```
console.log([1,2,3].indexOf(test) != -1);

```