JS位运算符的使用方法有哪些
发表于:2024-10-02 作者:千家信息网编辑
千家信息网最后更新 2024年10月02日,本篇内容主要讲解"JS位运算符的使用方法有哪些",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"JS位运算符的使用方法有哪些"吧!1. 使用左移运算符 <<
千家信息网最后更新 2024年10月02日JS位运算符的使用方法有哪些
本篇内容主要讲解"JS位运算符的使用方法有哪些",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"JS位运算符的使用方法有哪些"吧!
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. 使用 & 判断奇偶性
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 的整数幂
10. 使用 A + 0.5 | 0 来替代 Math.round()
String
1. 使用toString(16)取随机字符串
Math.random().toString(16).substring(2, 15);
.substring() 的第二个参数控制取多少位 (最多可取13位)
2. 使用 split(0)
使用数字来做为 split 的分隔条件可以节省2字节(不实用)
// --- before --- "alpha,bravo,charlie".split(","); // --- after --- "alpha0bravo0charlie".split(0);
3. 使用.link() 创建链接
一个鲜为人知的方法,可以快速创建 a 标签
// --- before --- let b = `google`; // --- 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 的操作
3. 使用 Array.length = 0 来清空数组
4. 使用 Array.slice(0) 实现数组浅拷贝
5. 使用 !+"1" 快速判断 IE8 以下的浏览器
6. for 循环条件的简写
// --- before --- for(let i = 0; i < arr.length; i++) {...} // --- after --- for(let i = arr.length; i--;) {...} // 注意 i-- 后面的分号别漏了
到此,相信大家对"JS位运算符的使用方法有哪些"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
方法
运算符
运算
整数
随机数
使用方法
相同
数字
数组
实用
内容
变量
字符
条件
负数
学习
循环
更深
传统
兴趣
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
新民软件开发
服务器管理器可以删除吗
黄埔网络安全服务费用
重装上阵为什么进不去服务器
如何认识网络安全心得体会
who疾病死亡数据库
网络技术的分数线
普陀区个性化网络技术转让产品
软件开发能抵扣增值税吗
每日维护网络安全标准
wind数据库下载股票收盘
衡阳网络安全培训老品牌
数据库1433端口 打开
数据库与服务器密码是一样的吗
开黑啦被踢出服务器
软件开发工程师要具备什么
vs212怎么连接自带的数据库
战神引擎技能数据库
数据库如何把年月日转换成年
人工智能中的神经网络技术答辩
诺克网络技术有限公司
朝阳区正规软件开发介绍
who疾病死亡数据库
监控存储服务器维修
toc2服务器
列式数据库有什么
网络安全常识与法律法规
沈阳软件开发六年后工资
关于网络安全的知识演讲稿
asp.net 数据库池