Ответ 1

Если вам интересно, почему он используется в этой ситуации, это краткое описание того, нашел ли метод indexOf что-то.

indexOf возвращает -1, когда он не находит что-либо, и >= 0, когда он это делает. Поэтому, когда вы делаете ~ -1, вы получаете 0 (значение фальшивки), и когда вы делаете это на что-либо еще, вы получаете правдивое значение.

Итак:

if( ~str.indexOf( "something" ) ) {
...
}

Это более короткий способ сказать

if( str.indexOf( "something" ) !== -1 ) {
...
}

Если вам интересно, как -1 NOT из 0, прочитайте здесь