javascript中的【~~】运算符,简单一点的用法就是可以将一些变量转化为Number(数字)类型的。

将数字类型的字符串转化为纯数字。

var a = '123';
console.log(~~a); // 输出数字类型的123

如果字符串中带了其他字母,符号,或者其他除数字外的东西,一律输出Number类型的0。

var a = '123a';
console.log(~~a); // 输出0

任何boolen类型的,如果为TRUE则输出1,FALSE输出0。

var a = 1 == 1;
console.log(~~a); // 输出1

特殊类型,转化为Boolean是true的输出1,转化为Boolean是false的输出0。

var a = undefined;
console.log(~~a); // 输出0
var a = !undefined;
console.log(~~a); // 输出1

最后来看一个特别厉害的应用例子。

var a = (!(~+[])+{})[--[~+""][+[]]*[~+[]] + ~~!+[]]+({}+[])[[~!+[]]*~+[]];
console.log(a); // 输出"sb"

 

"如果有一天失去的东西回来了,你还会要吗?"

你要去做一个大人,不要回头,不要难过。