if (~string.indexOf(keyword)) {
// found
} else {
// not found
}
-
String.indexOf()
は引数のキーワードが見つからなかったとき -1 を返す - Bitwise NOT演算子
~
はオペランドを符号付き32ビット整数とみなしてビットを反転させる -
~(-1) === 0
であり、Bitwise NOTが 0 になるのはこれのみ - したがって上記のコードは
indexOf()
が -1 のとき = キーワードが見つからなかったときのみ else 節を実行する!