那些年,JavaScript的神操作

这篇博客介绍了JavaScript中的一些高效编程技巧,包括使用左移运算符快速计算2的次方,用位操作符^切换变量的0或1状态,利用&判断数字奇偶性,通过n&(n-1)确定是否为2的幂,用a+0.5|0代替Math.round进行四舍五入,用toString(16)生成随机字符串,以及快速清空数组的方法。还提到了使用!+v1来检测IE8以下浏览器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 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 以下的浏览器

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值