¿Qué hace el operador "~" en este script? [duplicar

Esta pregunta ya tiene una respuesta aquí:

Cómo: ¿El operador ~? 4 respuestas ¿Cómo lo hace? ~ (No tilde / bang bang tilde) altera el resultado de una llamada al método de matriz 'contiene / incluido' 13 respuestas

Hola, estoy eliminando una matriz de un índice específico, y llegué con este script:

var arr = [1,2,3,4];
var index = 2;
if (~index) arr.splice(index, 1);

I google"what does "~" operator do in this script?" y no puedo encontrar ninguna respuesta, supongo que estoy haciendo una búsqueda incorrecta, ¿alguien podría explicarme este operador y cómo se llama para una búsqueda adecuada?

Tengo un pequeño sospechoso que se compara con (!) (Indefinido) pero no estoy seguro ...

gracias por adelantad

Respuestas a la pregunta(1)

Su respuesta a la pregunta