8
I'll do my best:
[]===0 is of course false because [] is not exactly equal to 0. However, []==0 is true because an implicit cast exists.
+ and -[] work because the plus or minus casts [] to a real number.
~0 (the bitwise inverse of 0) is -1. Thus ~[]===-1 works.
The others work just by subtracting or adding -1 a bunch of times.
I believe, correct me if I'm wrong, but adding to an array (as in, adding a value to an array rather than adding a value into an array) casts it to a number. The rest is just using basic +, - operators (the tilde (~) is a bitwise NOT) to modify the number and then an equation.
So [] == array ([]);
[] + 1 == number (0);
+[]===0 (true)