1. 使用左移运算符 <<
迅速得出2的次方
1 << 2 // 4, 即 2的2次方
1 << 10 // 1024, 即 2的10次方
// 但是要注意使用场景
a = 2e9; // 2000000000
a << 1; // -294967296
2. 使用 ^
切换变量 0 或 1
// --- before ---
// if 判断
if (toggle) {
toggle = 0;
} else {
toggle = 1;
}
// 三目运算符
togle = toggle ? 0 : 1;
// --- after ---
toggle ^= 1;
3. 使用 &
判断奇偶性
// 偶数 & 1 = 0
// 奇数 & 1 = 1
console.log(7 & 1); // 1
console.log(8 & 1) ; // 0
4. n & (n - 1)
,如果为 0,说明 n 是 2 的整数幂
let n = 24;
n & (n-1) // 16
n = 64;
n & (n-1) // 0
5.使用 a + 0.5 | 0
来替代 Math.round(a)
let a = 24.7, b = -24.7
Math.round(a); // 25
Math.round(b); // -25
a + 0.5 | 0; // 25
b - 0.5 | 0; // -25
6.使用toString(16)
取随机字符串
Math.random().toString(16)
// 0.77c8b71f7b63e
7.使用 Array.length = 0
来清空数组
let arr = [0,1,2,3]
arr // 0,1,2,3
arr.length = 0; // []
8.使用 !+"\v1"
快速判断 IE8 以下的浏览器