Ответ 1
Если вам интересно, почему он используется в этой ситуации, это краткое описание того, нашел ли метод indexOf
что-то.
indexOf
возвращает -1, когда он не находит что-либо, и >= 0, когда он это делает. Поэтому, когда вы делаете ~ -1, вы получаете 0 (значение фальшивки), и когда вы делаете это на что-либо еще, вы получаете правдивое значение.
Итак:
if( ~str.indexOf( "something" ) ) {
...
}
Это более короткий способ сказать
if( str.indexOf( "something" ) !== -1 ) {
...
}
Если вам интересно, как -1 NOT из 0, прочитайте здесь