记录一些神奇的语法

258 阅读1分钟

判断两个数字的符号是否相同

(2 ^ -4)>=0 // false
(-2 ^ -4)>=0 // true
(-2 ^ 4)>=0 // false
(-2 ^ -4)>=0 // true

写一个函数,判断是否是2的整数幂

function isPowerOf2(n) {
    return (n & (n - 1)) === 0;
}

倒序排序

for(let i = arr.length - 1, i >= 0, i--) {}
for(let i = arr.length; i--;){}

数字在1和0之间切换

let a = 0;
a ^= 1; // 1
a ^= 1; // 0
a ^= 1; // 1

求一个数字的整数部分

~~3.14
3.14 >> 0
3.14 << 0
3.14 | 0

某个数乘以2的n次幂

1 << 2
1 << 3
1 << 5