js运算【按位非】~

这个运算符有点意思:按位非【~】

先来几个例子:

~undefined: -1

~false: -1

~true: -2

~10:-11

找出规律了吧~~

再说一下运用场景:

之前判断字符串是否存在是这样写:

var str = "sdfjh2kdd";
if( str.indexOf("2")>-1 ){
  console.log("存在")  
}else{
  console.log("不存在")  
}

现在可以这样写:

var str = "sdfsdfs233";

if( ~str.indexOf('2') ){

    console.log("存在")
    
}

位运算的效率会比运算符高,如果不了解的也正好学习一下,免得看到【按位非~】运算符一脸懵,高级程序设计里面有一章是介绍这个的,可以回去翻一番。

原文地址:https://www.cnblogs.com/cench/p/6029202.html