位操作

JavaScript中的数字都按照IEEE-754(Institute of Electrical and Electronics Engineers)标准以64位格式存储。在位操作中,数字被转换为有符号32位格式。每次运算符会直接操作该32位数以得到结果。虽然需要转换,但这个过程与JavaScript其他数学运算和布尔操作相比要快很多。

  • Bitwise AND 按位与

两个操作数的对应位都是1时,则在该位置返回1。

  • Bitwise OR 按位或

两个操作数的对应位只要一个为1时,则在该位返回1。

  • Bitwise XOR 按位异或

两个操作数的对应位只有一个为1,则在该位返回1。

  • Bitwise NOT 按位取反

遇0则返回1,反之亦然。

颜色交替

32位数字的二进制底层表示,偶数的最低位是0,奇数的最低位是1。如果此数为偶数,和1按位与的结果是0;如果此数为奇数,和1按位与的结果是1。可以使用该方法实现颜色交替,效率可能会比纯数学运算(如,取模)快50%。

    for (let i = Things.length - 1; i >= 0; i--) {if(i & 1) {className = 'oddColor';}else {className = 'evenColor';}}
复制代码

位掩码

位掩码用于处理同时存在多个布尔选项的情形。使用单个数字的每一位来判定选项是否成立,从而有效地把数字转换为由布尔值标记组成的数组。掩码中的每个选项的值都等于2的幂

const OPTION_A = 1;
const OPTION_B = 2;
const OPTION_C = 4;const options  = OPTION_A | OPTION_B;// 选项A是否在options中
if(options & OPTION_A) {// code here
}
// 选项A是否在options中
if(options & OPTION_B) {// code here
}
// 选项A是否在options中
if(options & OPTION_C) {// code here
}
复制代码

转载于:https://juejin.im/post/5b172b48f265da6e1d6ca79a

常用的JavaScript位操作(Bitwise)相关推荐

  1. 常用的JavaScript模式

    常用的JavaScript模式 模式是解决或者避免一些问题的方案. 在JavaScript中,会用到一些常用的编码模式.下面就列出了一些常用的JavaScript编码模式,有的模式是为了解决特定的问题 ...

  2. 在CRM定制中常用的Javascript

    CRM Client Programming Tips 前段时间一直在做CRM4.0的相关开发,其中大多数都是在做Customization和工作流,其实CRM的开发本来大多都是Customizati ...

  3. 18个常用的JavaScript片段分享

    JavaScript,这种强大的语言几乎涉及到编程各个方面:前端.后端.web应用程序.桌面应用程序.移动应用程序等等.小千整理了18个常用的JavaScript片段分享给大家,在日常开发工作中,它们 ...

  4. 15个常用的javaScript正则表达式

    :点上面关注免费学习前端知识! 收集整理了15个常用的javaScript正则表达式,其中包括用户名.密码强度.整数.数字.电子邮件地址(Email).手机号码.身份证号.URL地址. IPv4地址. ...

  5. 常用js(javascript)函数

    常用js(javascript)函数 1.常规函数 javascript常规函数包括以下9个函数: (1)alert函数:显示一个警告对话框,包括一个OK按钮. (2)confirm函数:显示一个确认 ...

  6. 常用的 JavaScript 库 CDN 加速服务

    CDN 一般比你的网站快很多,可以在一定程度上加速访问,可以在一定程度上节省服务器流量,浏览器会缓存同一个地址的JS,因此,使用同一个 CDN 的人越多,加速效果越明显,为你的产品提供最佳的用户体验. ...

  7. 15个常用的JavaScript简写技巧

    大家好,我是 漫步,今天来分享几个JS 常见的简写技巧,助你写出更优秀的代码,喜欢的话,记得关注我并设为星标及时收到文章. 任何编程语言的简写技巧都能够帮助你编写更简练的代码,让你用更少的代码实现你的 ...

  8. 八大最常用的JavaScript设计模式

    八大最常用的JavaScript设计模式 设计模式(Design pattern) 是解决软件开发某些特定问题而提出的一些解决方案也可以理解成解决问题的一些思路.通过设计模式可以帮助我们增强代码的可重 ...

  9. AppBaseJs 类库 网上常用的javascript函数及其他js类库写的

    AppBaseJs类库.一个借鉴了网上常用的函数及其他js类库写的,方便大家的调用. 代码如下: /*-----------------------------------  Web Applicat ...

最新文章

  1. 真正拖垮年轻人的,是沉没成本
  2. 递归打印组合数、搜索模板
  3. 2012-5-3 线程和进程的区别
  4. linux -- control service and daemon process
  5. android自定义radiogroup,Android自定义RadioGroup
  6. 数组实例的fill()方法 fill()方法
  7. 机器人当中的摩擦力(未完)
  8. UI设计素材 | 备用的404界面,存起来
  9. Ubuntu 10.04 is coming
  10. 前端分页插件pagination
  11. _beginThreadex创建多线程解读
  12. 全世界都误会我们了。。。。。。。。
  13. mysql 字段有分隔符_在MySQL字段中使用逗号分隔符
  14. TP Link 路由器 设置
  15. 回顾2017展望2018
  16. 当我在做技术管理时,我在做什么?
  17. 翻车!误删/usr/lib/引发的血案,从棺材边成功抢救的过程分享。
  18. OSChina 周日乱弹 ——我对象整天在家打游戏,怎么办?
  19. win10系统无法切换输入法无法输出中文
  20. Markdown——下载链接与语法说明

热门文章

  1. 周末学习总结(LIO标定+kitti数据集的使用+evo工具的使用+开源数据集+ssh的使用)
  2. css如何使文字抖动,CSS美化:实现抖音彩色文字抖动效果
  3. 阿里高维向量检索方法NSG介绍
  4. 王学岗移动架构34——IOC注入框架设计
  5. 网络安全系列-VIII: 什么是渗透测试 Penetration Test?
  6. 三款超火的国外壁纸应用,让你每天都用新手机
  7. android 虚拟按键源码流程分析
  8. BUAA 数据结构总结——大作业(文本摘要生成)
  9. 结合 服务器+后端+前端,完成 vue项目 后台管理系统
  10. ios App加载网页,点击网页链接调用App处理