javascript 中双波浪线 是做什么处理的

JavaScript016

javascript 中双波浪线 是做什么处理的,第1张

js中波浪线运算符"~"的作用是将数字转化为有符号32位整数并作位取反, 位取反即把数字转换为2进制补码然后把0和1反转. 对一个数字取反2次会变成原来的数字, 于是双波浪线的作用就是把一个小数舍弃小数点转换为整数, 在数字较小转换为32位整数时不会溢出的情况下可以当作Math.floor的偷懒写法. 不过更一般的写法是"num | 0", 即位或0, 在位运算上不会改变数字但可以快速的转换为整数, 在各种将数字转换为整数的写法中位或0速度最快

在函数前加上波浪号,其作用是把函数声明转换为表达式,这样就可以直接运行。

具体来讲这个例子,先计算表达式cn.search( /open/i ) 的值

如果为真,则执行cn.replace( / open/i, '' )

否则, 返回cn + ' open'