js运算【按位非】~ (index = ~~this.userIndex)(~~ 双破折号 如果是数字返回数字,如果不是数字 返回0)

index = ~~this.userIndex

~~ 双破折号 如果是数字返回数字,如果不是数字 返回0

 

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

先来几个例子:

~undefined: -1

~false: -1

~true: -2

~10:-11

找出规律了吧~~

再说一下运用场景:

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

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

现在可以这样写:

1
2
3
4
5
6
7
var str = "sdfsdfs233";
 
if( ~str.indexOf('2') ){
 
    console.log("存在")
     
}

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

posted @ 2019-07-02 16:48  彭成刚  阅读(362)  评论(0编辑  收藏  举报