文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

JS位运算符的使用方法有哪些

2023-06-29 12:56

关注

本篇内容主要讲解“JS位运算符的使用方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JS位运算符的使用方法有哪些”吧!

1. 使用左移运算符 << 迅速得出2的次方

1 << 2  // 4, 即 2的2次方1 << 10 // 1024, 即 2的10次方// 但是要注意使用场景a = 2e9;   // 2000000000a << 1;    // -294967296

2. 使用 ^ 切换变量 0 或 1

// --- before ---    // if 判断    if (toggle) {        toggle = 0;    } else {        toggle = 1;    }    // 三目运算符    togle = toggle ? 0 : 1;        // --- after ---    toggle ^= 1;

3. 使用 & 判断奇偶性

console.log(7 & 1);    // 1    console.log(8 & 1) ;   // 0

4. 使用 !! 将数字转为布尔值

所有非0的值都是true,包括负数、浮点数:

console.log(!!7);       // true    console.log(!!0);       // false    console.log(!!-1);      // true    console.log(!!0.71);    // true

5. 使用~、>>、<<、>>>、|来取整

相当于使用了 Math.floor()

console.log(~~11.71)     // 11    console.log(11.71 >> 0)  // 11    console.log(11.71 << 0)  // 11    console.log(11.71 | 0)   // 11    console.log(11.71 >>> 0) // 11

注意 >>> 不可对负数取整

6. 使用^来完成值交换

在 ES6 的解构赋值出来之前,用这种方式会更快(但必须是整数):

// --- before ---    let temp = a; a = b; b = temp; // 传统,但需要借助临时变量    b = [a, a = b][0] // 借助数组        // --- after --- 只能用于整数    let a = 7    let b = 1    a ^= b    b ^= a    a ^= b    console.log(a)   // 1    console.log(b)   // 7        [a, b] = [b, a]; // ES6,解构赋值

7. 使用^判断符号是否相同

只能应用与整数

(a ^ b) >= 0; //  true 相同; false 不相同

8. 使用^来检查数字是否不相等

// --- before ---    if (a !== 1171) {...};        // --- after ---    if (a ^ 1171) {...};

9. n & (n - 1),如果为 0,说明 n 是 2 的整数幂

JS位运算符的使用方法有哪些

10. 使用 A + 0.5 | 0 来替代 Math.round()

JS位运算符的使用方法有哪些

String

1. 使用toString(16)取随机字符串

Math.random().toString(16).substring(2, 15);

.substring() 的第二个参数控制取多少位 (最多可取13位)

JS位运算符的使用方法有哪些

2. 使用 split(0)

使用数字来做为 split 的分隔条件可以节省2字节(不实用)

// --- before ---    "alpha,bravo,charlie".split(",");        // --- after ---    "alpha0bravo0charlie".split(0);

3. 使用.link() 创建链接

一个鲜为人知的方法,可以快速创建 a 标签

// --- before ---    let b = `<a herf="www.google.com">google</a>`;        // --- after ---    let b =  google .link( www.google.com );

4. 使用 Array 来重复字符

    // --- before ---    for (let a = "", i = 7; i--;) a+= 0;        // --- after ---    let b = Array(7).join(0); // "0000000"let c = Array(7).join( La ) // "LaLaLaLaLaLa"        // ES6    let d = "0".repeat(7); // "0000000"

其他一些花里胡哨的操作

1. 使用当前时间创建一个随机数

    // --- before ---    let b = 0 | Math.random() * 100        // --- after ---    let a;    a = new Date % 100; // 两位随机数    a = new Date % 1000; // 三位随机数    a = new Date % 10000; // 四位随机数...依次类推    // 不要在快速循环中使用,因为毫秒可能没有变化;

2. 一些可以替代 undefined 的操作

JS位运算符的使用方法有哪些

3. 使用 Array.length = 0 来清空数组

4. 使用 Array.slice(0) 实现数组浅拷贝

5. 使用 !+“1” 快速判断 IE8 以下的浏览器

JS位运算符的使用方法有哪些

6. for 循环条件的简写

    // --- before ---    for(let i = 0; i < arr.length; i++) {...}        // --- after ---    for(let i = arr.length; i--;) {...} // 注意 i-- 后面的分号别漏了

到此,相信大家对“JS位运算符的使用方法有哪些”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯