JavaScript特殊运算符笔记二 —— 按位取反运算符~

~ 运算符查看表达式的二进制表示形式的值,并执行位非运算。

  • 0转为二进制为00000000
  • ~取反就是取0的补码
  • 0的补码为11111111
  • 11111111转为十进制为-1
  • 所以
~0 = -1;

同理

  • -1转为二进制为11111111
  • ~取反就是取1的补码
  • -1的补码为00000000
  • 00000000转为十进制为0
  • 所以
~-1 = 0;

用法: 因为-1的取反操作等于0,而其他数的取反操作不等于0。所以用indexOf操作符可以用~操作来判断某个字符串里是否有某个字符。

let str = '123456';
if(~str.indexOf(0)){
  console.log('因为取反之后不为零,说明indexOf的结果不等于-1,所以表示str字符串里包含了对应字符')
} else {
  console.log('说明取反之后为零,说明indexOf的结果等于-1,所以表示str字符串里不包含了对应字符')
}

你可能感兴趣的:(JavaScript特殊运算符笔记二 —— 按位取反运算符~)