原理
js中在变量名前加"~" 是位运算NOT,按位取反.
var iNum1 = 25;
//25 二进制原码等于 00000000000000000000000000011001
var iNum2 = ~iNum1;
//转换为 11111111111111111111111111100110
alert(iNum2);//输出 "-26"
相当于是对数值求负后减1 ,25 -> -25 -> -26
indexOf用法
if (~this.cartIds.indexOf(item.id)) {
//在if判断里,只要是非0都会进入
//当this.cartIds包含item.id时,返回的是0,然后~取反为-1
}
函数用法
在函数前加上波浪号,其作用是把函数声明转换为表达式,就可以直接将下面的代码放入某个函数里运行。
function functionName() {
//执行的代码
~function sayHello(){ console.log('hello');}()
}