javascriptの「~」チルダ演算子はビット反転演算子で、整数をビット反転させると符号を反転させて1引いた数になる
console.log(~-4); // 3
console.log(~-3); // 2
console.log(~-2); // 1
console.log(~-1); // 0
console.log(~0); // -1
console.log(~1); // -2
console.log(~2); // -3
console.log(~3); // -4
console.log(~4); // -5
上記の通り、-1のときだけ0になる
indexOfが値が存在しない場合に-1を返すので組み合わせると下記のようにできる
var arr = [1,2,3];
if (!~arr.indexOf(0)) {
// indexが存在しない
}